Ich habe eine System-PATH-Variable mit der Konfiguration auf Systemebene. Ich verwende die Benutzer-PATH-Variable, um den PATH durch eine benutzerspezifische Konfiguration zu ergänzen.
Ich möchte die Benutzer-PATH-Variable über die Befehlszeile beispielsweise mit setx aktualisieren.
Ich weiß jedoch nicht, wie ich auf den vorhandenen Benutzerpfad in setx verweisen soll.
Im folgenden Befehl (setx ohne / M)
setx PATH c:\my-user-specifc-bin-path;%PATH%
Der erste PATH bedeutet Benutzer PATH, aber der zweite% PATH% wird durch den "vollständigen" (Benutzer + System) PATH ersetzt.
Das bedeutet also, dass der gesamte Systempfad im Benutzerpfad dupliziert wird ... was definitiv nicht das ist, was ich will.
Ich würde gerne:
- Betrifft nur die Umgebungsvariable PATH des Benutzers
- Fügen Sie ein oder mehrere Pfadelemente an den vorhandenen Wert an
- Mach es über die Kommandozeile.
windows
command-line
path
environment-variables
Christian Lemer
quelle
quelle
;%PATH%
, möchten Sie, dass der vorhandene Pfad (abgeleitet vom Systempfad) angehängt wird.Antworten:
PowerShell-Version, PATH für Benutzer festlegen:
quelle
So legen Sie fest, dass der Benutzerpfad alle vorherigen Werte überschreibt:
So stellen Sie dem vorhandenen Benutzerpfad einen Wert "C: \ MyPath0" voran:
So hängen Sie einen Wert "C: \ MyPath2" an den vorhandenen Benutzerpfad an:
Die if-else-Bedingung ist erforderlich, da der Benutzerpfad Leerzeichen enthalten kann oder nicht. Wenn Sie möchten, können Sie die Befehle als generische Batchdateien speichern (verdoppeln Sie jedes% -Zeichen), die den Wert akzeptieren, der als Argument festgelegt / vorangestellt / angehängt werden soll.
Batch-Datei
quelle
for /?
wird dir alles sagen, was du wissen musst. :) Ich wollte hier nicht alles unnötig replizieren und dachte, dass Informationen sowieso leicht herauszufinden wären.PATH
bereits mit einem Semikolon endet. In diesem Fall sollte das Anhängen des übergebenen Verzeichnisses ohne ein zusätzliches Semikolon erfolgen. Aber das größte Problem mit diesem Code ist eine Verballhornung des BenutzersPATH
, wenn die Zeichenfolge länger als 1024 Zeichen wegensetx
Verkürzungen der Zeichenfolge auf 1024 Zeichen mit einer entsprechenden Anzeige von Informationen , bevor es an Windows - Registrierung hinzufügen. Es kann also vorkommen, dass der vorhandene Benutzer anstelle des übergebenen VerzeichnissesPATH
durch diesen Code abgeschnitten (verstümmelt) wird.müssen
SETX /M
, Standard aufSETX
eingestelltHKEY_CURRENT_USER
quelle
Das scheint zu funktionieren:
quelle
PATH
mit local zu aktualisierenPATH
. Diese Befehlszeile beschädigt den Benutzer wirklich,PATH
indem sie im besten Fall die Zeichenfolge zur Windows-Registrierung für den Benutzer hinzufügt . Jeder Benutzer dieser Befehlszeile hat die Benutzereinstellung erfolgreich beschädigt und ist so lokal, wie sie von allen Prozessen verwendet wird, die nach dem Windows-Neustart oder der Abmeldung / Anmeldung mit dem aktuellen Benutzerkonto ausgeführt werden.PATH
c:\my-user-specifc-bin-path-which-may-contain-spaces;%C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;%
PATH
PATH