Grundsätzlich weiß ich, dass ich über mein Control Panel die Pfadvariable ändern kann. Aber ich frage mich, ob es eine Möglichkeit gibt, durch Batch-Programmierung einen temporären Pfad einzuschließen. Auf diese Weise wird es nur während der Ausführung dieser Batchdatei verwendet. Ich möchte nicht, dass Leute ihre Pfadvariablen ändern, nur um meine Batchdatei zu verwenden.
quelle
setlocal
Ihrer Batch-Datei ein hinzufügen , ist der Pfad nur in der Datei sichtbarSET
das sollten Sie unbedingt wissen und verstehen, bevor Sie Skripte erstellen.SETLOCAL
es wird höchstens für diese einzelne Eingabeaufforderungssitzung sein - wenn Sie dies von mehr als einer Batchdatei aus tun und verwendenEXIT /B %N%
, werdenSETLOCAL
Ihre Änderungen im Grunde nur beim Beenden des Skripts gespeichert. : - /Es gibt ein wichtiges Detail:
funktioniert nicht, während
funktioniert. Der Unterschied sind die Zitate!
UPD siehe auch den Kommentar von venimus
quelle
SET "PATH=...%PATH%"
Leerzeichen im Pfad Fehler oder Fehlverhalten verursachen. Wenn Sie solche Anführungszeichen einschließen, werden diese nicht berücksichtigt, aber die Variable wird ordnungsgemäß festgelegt. Gleiches gilt für jede andere env-Variable.Das ist richtig, aber es ändert es nicht dauerhaft, sondern nur für die aktuelle Eingabeaufforderung. Wenn Sie es dauerhaft ändern möchten, müssen Sie zum Beispiel Folgendes verwenden:
Dies wird es dauerhaft ändern und ja, Sie können es durch ein anderes Batch-Skript überschreiben.
quelle
/m
muss danach seinsetx
?/m
am Ende, dieDESIRED_PATH
mit / m am Ende hinzugefügt nur für die aktuellen Benutzer.echo %path%
und Sie erhalten den aktuell geladenen Pfad. Sie müssen die Umgebungsvariablen Benutzer und System voneinander unterscheiden. Dann können Sie sie manuell an der richtigen Stelle anwenden.