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-Key: 270708

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

Printed on: April 25, 2024 at 19:04 o'clock

Mitglied: 114757
114757 Apr 30, 2015 updated at 10:27:09 (UTC)
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
Member: busteron
busteron Apr 30, 2015 at 09:03:21 (UTC)
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.
Member: Lochkartenstanzer
Lochkartenstanzer Apr 30, 2015 at 09:06:53 (UTC)
Goto Top
Mitglied: 114757
114757 Apr 30, 2015 updated at 09:08:48 (UTC)
Goto Top
Hast du wirklich setx mit dem parameter /m verwendet und die Konsole mit Admin-Rechten gestartet ?
Member: busteron
busteron Apr 30, 2015 at 09:18:04 (UTC)
Goto Top
Zu beiden Fragen JA!! :o)
Mitglied: 114757
114757 Apr 30, 2015 updated at 10:34:26 (UTC)
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.
Member: busteron
busteron Apr 30, 2015 updated at 10:53:48 (UTC)
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?
Mitglied: 114757
Solution 114757 Apr 30, 2015 updated at 11:23:36 (UTC)
Goto Top
set newpath=%PATH:\test"=test\%  
setx /m PATH %newpath%
Member: busteron
busteron Apr 30, 2015 at 11:23:31 (UTC)
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)