Ich habe ein Verzeichnis in meinem Home-Ordner, in dem ich die Befehlszeilensoftware (CMD_Software) ablege. Ich habe jede Software in einem eigenen Verzeichnis innerhalb von CMD_Software abgelegt, um Unordnung zu vermeiden.
Ich möchte einen einzelnen Eintrag in meiner PATH-Variablen vornehmen, der den Zugriff auf CMD_Software und alle darin enthaltenen Verzeichnisse über die Befehlszeile ermöglicht.
Ich habe es versucht, C:\Users\myuser\CMD_Software\*
aber das hat nichts gebracht. Das ist der Punkt, an dem mir die Ideen ausgehen.
Bitte beachten Sie, dass ich im Terminal nicht versuche, einen neuen Pfad festzulegen. Ich versuche, einen neuen Pfad in den "Umgebungsvariablen" festzulegen, die auf der Registerkarte "Erweitert" der Systemeigenschaften verfügbar sind.
quelle
Antworten:
Die Variable PATH unterstützt keine Platzhalter oder Rekursionen. Dies ist beabsichtigt.
Es gibt zwei mögliche Problemumgehungen, die ich gelegentlich verwendet habe:
Erstellen Sie ein Verzeichnis mit einfachen Batch-Dateien und fügen Sie dieses Verzeichnis dem PATH hinzu. Jede Batch-Datei kann das gewünschte Programm starten, zum Beispiel:
Die erste Zeile ist ein Kommentar, die zweite Zeile beginnt damit
@
, dass der ausgeführte Befehl nicht angezeigt wird, und%*
wird verwendet, um Befehlszeilenargumente an die EXE-Datei zu übergeben.Fügen Sie Aliasnamen zu CMD.EXE hinzu:
Dies bedeutet im Wesentlichen, dass
CMD_Software
in der Eingabeaufforderung alles nach dem Gleichheitszeichen steht. Das$*
wird durch die angegebenen Argumente ersetzt.Ich bevorzuge den zweiten Ansatz, da Sie alle Aliase in einer einzigen Datei gruppieren können (siehe den Schalter "/ MACROFILE" in DOSKEY /?) Und ihn automatisch ausführen lassen können, wenn der Befehlsinterpreter eine Registrierungseinstellung verwendet (siehe "AutoRun" - Eingabe) CMD /?).
Ein Nachteil der zweiten Methode ist, dass Aliase nur am Anfang einer Befehlszeile funktionieren. Dies kann ein Problem sein, wenn Sie Befehle verketten möchten.
CLS & CMD_Software
Dies funktioniert beispielsweise nur, wenn Sie den Alias in Klammern in eine separate Zeile setzen:Wann immer dies zu einem Problem wird, greife ich einfach auf den Batch-File-Ansatz zurück.
quelle
Dies ist, was ich benutze, um das Problem zu beheben. Kopieren Sie dieses Skript unten und speichern Sie es
FIXPATH.BAT
in dem Ordner, den Sie derPATH
Umgebungsvariablen hinzugefügt haben . Zum Beispiel:Wenn Sie jetzt ein Programm ausführen müssen, das sich in einem Unterordner befindet, sagen Sie ...
Führen Sie
fixpath
zuerst den Befehl ausgrep
und geben Sie ihnexiftool
wie folgt ein (z. B. oder ):FIXPATH.BAT
Danke an @ VonC's Antwort
quelle
Legen Sie ein Unterverzeichnis "programlinks \" unter ... \ CMD_Software (oder irgendwo anders) ab und füllen Sie es mit symbolischen Links oder Hardlinks zu jeder ausführbaren Datei, auf die Sie zugreifen möchten. Dann genügt ein Eintrag im PATH for ... \ programlinks.
quelle
Wenn Ihnen die Idee nicht allzu abschreckt, können Sie Ihre Befehlszeilentools in das Verzeichnis Windows \ System32 kopieren. Dann können Sie sie von jedem beliebigen Verzeichnis aus ausführen, genau wie ping oder ipconfig.
edit
Nach einigem Herumbasteln ist dies möglich. Sie müssen nur Semikolons verwenden, um Ihre Verzeichnisse abzugrenzen. Angenommen, Sie hatten ein Programm in "folder1" und "folder2". Du würdest deinen Weg so schreiben:
Dann können Sie ein Programm in einem der Verzeichnisse direkt über die Befehlszeile aufrufen. AFAIK, es gibt keinen anderen Weg, dies mit nur einer einzigen Zeile zu tun.
Hintergrundinformationen: http://en.wikipedia.org/wiki/PATH_(variable)
quelle
program.bat
as%PATH%\program.bat
ist mehr oder weniger das Gegenteil von dem, wofür PATH entwickelt wurde.