CLI und Default-Path

Es gibt 8 Antworten in diesem Thema, welches 2.789 mal aufgerufen wurde. Der letzte Beitrag (12. März 2017 um 19:07) ist von nhoijtink.

  • Ich suche derzeit nach einer Möglichkeit der CLI über Information beizubringen, dass derjenige Pfad standardmässig gesetzt ist, in welchem sich die CLI selbst befindet.

    Konkretes Beispiel:

    • Kopieren der CLI und shell.info nach dh2:MeinOrdner/MeinUnterordner
    • Unter Icon Informationen kann ich über den FROM-Parameter ein Script ansteuern, in welchem ich unter der Verwendung von CD eine Pfadangabe hinterlegen kann.

    Das funtioniert auch korrekt: wenn ich in der WB eine Shell via Doppelclick öffne, befinde ich mich im angegebenen Pfad.

    Nun müsste ich aber pro Shell ein einzelnes Script schreiben und unter Informationen entsprechend darauf verweise - was mühsam und ineffizient ist.

    Hat jemand einrn Tipp wir msn das mit AmigaDOS dynamisch lösen kann?

  • Schau mal, so ich habe ich das gelöst.
    Ich mache das kontextsensitiv pro Fenster.

    Die Befehle getpath und copy2clip findest Du bestimmt im Aminet.
    Wenn nicht, nimm sie Dir von hier. Ich hab sie hochgeladen.

    Edit:

    Die Shell öffne ich dann per Hotkey F7. Das läuft über Commodities F-Key.
    Da wird nur ein newshell Kommando abgesetzt mit fixen Fenstermaßen. Ohne Pfad. Der ist ja im Hintergrund schon gesetzt.

  • Es gibt noch einen Trick, du kannst NEWCLI über ICONX aufrufen, dann wird der aktuelle Pfad übernommen.

    Also eine Datei mit dem Inhalt "newcli" erstellen. Zu dieser Datei ein Icon mit Type Project erstellen, und dort als Default Tool "c:iconx" eintragen.

  • Danke für eure Antworten. Ich werde es mal versuchen und dann Rückmeldung geben.

    Lg, Han

  • Seit AmigaOS 2.x gibt es eigentlich PROGDIR: als virtuelles Laufwerk. Eigentlich sollte PROGDIR: immer auf DIE Schublade zeigen, in der man gerade aktiv ist. Irgenwie hab ich das mit dem PROGDIR: nie richtig gerafft. Gerade mal auf meinem A1200 getestet: Egal in welchen Verzeichniss ich per Shell/CLI rumschwirre. Gebe ich "dir progdir:" ein wird immer c: aufgelistet.

  • Soweit ich weiß, gibt PROGDIR: das Verzeichnis an, in dem das gerade laufende Programm liegt. In Deinem Beispiel wird immer C: gelistet, weil dort das "dir"-Kommando liegt.

    Ich weiß das auch nur daher, weil die Amiga-Version von ACME die mitgelieferte Library über "progdir:acme_lib/" anspricht. Im Gegensatz zu DOS/Windows/Linux muss der Benutzer also keine Umgebungsvariable definieren.

    Yes, I'm the guy responsible for the Bitte melde dich an, um diesen Link zu sehen. cross assembler. And some Bitte melde dich an, um diesen Link zu sehen..

  • Ist lange her, daß ich mich damit beschäftigt habe. Hatte mal ne Benutzeroberfläche für MAMEPPC zusammengeschustert. Erst eine Mischung aus AREXX- und SHELL-Scripts, später in der Ur-Version von Hollywood. Hab dann einfach absolute Pfade vergeben oder ASSIGNs gesetzt.

  • Das CD command gibt den aktuellen CLI/SHELL path zuruck:

    Sagen wir mal du machtst:

    Code
    CD SYS:C

    Den output von nur

    Code
    CD

    Gibt Workbench3.1:C zuruck, oder wie auch den SYS: van dem du gebootest hat heisst.

    Du kannst jetzt zum beispiel dieses output in einem CLI/SHELL variablen setzen durch:

    Code
    SET MYVAR=`CD`
    ECHO "Den pfad von diesem CLI ist: $MYVAR"

    Hier wird durch SET dass command CD augerufen (die CD wird erkannt als command weil die durch die ` zeichen umgeben ist, un dessen output wird an SET zuruckgegeben. Danach ist ein variabele entstanden met der nahme MYVAR un als inhalt die output des CD commands, also den aktuellen pfad von der CLI. In diesem vorbild also "Workbench3.1:c".

    Du kannst jezt uberall von CLI/SHELL die variabele aufrufen durch die nahme miet einem $ zeichen davor (also in diesem vorbild $MYVAR).

    Die output der zweiten zeile (Echo) ist also: "Den pfad von diesem CLI ist: Workbench3.1:c"

    Naturlich lasst sich dass alles auch einfacher/schneller machen:

    Code
    SET MYVAR=`CD SYS:C`
    ECHO "Auch hier ist den pfad nach der CD: $MYVAR"

    Jezt wird direkt ein CD nach SYS:C gemacht, und der pfad zuruckgegeben, und danach als variabele gezetzt, also $MYVAR enhalt jetzt auch "Workbench3.1:c"

    Und das alles ohne extra programme usw, nur standard befehle/fuctionalitat von Shell/CLI. Die variable MYVAR enhalt alles was CD zuruck gibt, also konnte auch eine fehlermeldung (Object not found) sein wen die CD nicht geklappt hat !!!!! Also ein bischen vorsicht ist doch geboten. Du sollst beispiels mal controlieren ob der order wonach die CD command verweist auch existiert bevor du den CD befehl gibst.

    Naturlich braucht du keine variabele zu setzen, das gebracht van `` gibt den output auch nach andere commands zuruck

    2 Mal editiert, zuletzt von nhoijtink (12. März 2017 um 18:55)

  • Fast vergessen: SET setzt ein locales variable (also nur fur dem laufenden script/CLI session), SETENV setzt ein globales variabele, also fur alle scripts.

    Und teste immer ein command im CLI wenn du `` verwendest, nich jedes command reagiert wie erwartet.