busteron
Goto Top

Dauerhaftes ersetzen in der Umgebungsvariable Path

Hallöchen,

ich hab mal wieder eine Frage!

Wie kann man dauerhaft einen einen Wert in der Umgebungsvariable "Path" ersetzen ohne den Rest daraus zu ändern?

Beispiel!
In der Umgebungsvariable "Path" steht ja meist:
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;c:\Windows\test\test?

Die Umgebungsvariable soll nun so ersetzt werden das der Wert: c:\Windows\test\test?
In c:\Windows\test\test\ ersetzt wird.

Also das die Umgebungsvariable "Path" dann so aussieht:C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;c:\Windows\test\test\

Naja und es soll bevor das alles geschieht geprüft werden ob der Wert c:\Windows\test\test? in "Path"besteht, weil nur dann soll er geändert werden.

Könnt Ihr mir da helfen?

Gruß
Busteron

Content-ID: 270708

Url: https://administrator.de/contentid/270708

Ausgedruckt am: 26.11.2024 um 15:11 Uhr

114757
114757 30.04.2015 aktualisiert um 12:27:09 Uhr
Goto Top
Probier's mal hiermit
set "newpath=%PATH:\test?=test\%"  
setx /m PATH %newpath%
(Admin-Konsole erforderlich wenn Path auf Systemebene geändert werden soll)

Gruß jodel32
busteron
busteron 30.04.2015 um 11:03:21 Uhr
Goto Top
Hallo jodel32,

das funktioniert leider nicht!
Er sagt mir zwar das er "ERFOLGREICH: Angegebener Wert wurde gespeichert." aber auch nach Rechner Neustart ist keine Änderung vorhanden.
Wenn ich im cmd die batch ausführe und über set abrufe sieht man noch den temporären "newpath" aber nach schließung auch nicht mehr.

Mit anderen Worten er ändert es nicht in der festen "Path" Umgebungsvariable.
Lochkartenstanzer
Lochkartenstanzer 30.04.2015 um 11:06:53 Uhr
Goto Top
114757
114757 30.04.2015 aktualisiert um 11:08:48 Uhr
Goto Top
Hast du wirklich setx mit dem parameter /m verwendet und die Konsole mit Admin-Rechten gestartet ?
busteron
busteron 30.04.2015 um 11:18:04 Uhr
Goto Top
Zu beiden Fragen JA!! :o)
114757
114757 30.04.2015 aktualisiert um 12:34:26 Uhr
Goto Top
Kann ich hier nicht bestätigen, geht im Test einwandfrei vergleiche deine Batch nochmal mit oben...
Der Parameter /M ändert ja die Variable Systemweit (Machine).
Die Konsole musst du schon schließen und neu öffnen damit du die Änderung siehst. Auch nach Neustart bleibt sie erhalten, funktioniert hier einwandfrei, du musst also irgendwo einen Fehler machen.
busteron
busteron 30.04.2015 aktualisiert um 12:53:48 Uhr
Goto Top
Ich weiß jetzt woran es liegt!

Ich habe statt einem Fragezeichen ( ? ), Anführungszeichen ( " ) die geändert werden müssen.

Also c:\Windows\test\test" steht da jetzt und c:\Windows\test\test\ so soll es geändert werden.

Deine Batch funktioniert mit Fragezeichen nur leider nicht mit Anführungszeichen, wie kann man das in deinem Batch einbinden?
114757
Lösung 114757 30.04.2015 aktualisiert um 13:23:36 Uhr
Goto Top
set newpath=%PATH:\test"=test\%  
setx /m PATH %newpath%
busteron
busteron 30.04.2015 um 13:23:31 Uhr
Goto Top
Ach was so ein paar kleine Anführungszeichen für Auswirkungen haben können!
Vielen Dank jodel32 hat jetzt super geklappt!

Vielen Dank super!! :o)