Ich kann system- oder benutzerspezifische Umgebungsvariablen setzen:
Das Problem besteht nun darin, dass die PATH
Variable so behandelt wird, dass der von Ihnen für den Benutzer PATH eingegebene Wert automatisch an den System-PATH angehängt wird und dies die effektive PATH-Variable ist.
Das heißt, ich habe gesagt
(SYSTEM) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...
und (USER) PATH=C:\Program Files\Bar\bin
(beachten Sie, dass %PATH%
dieser Wert nicht enthalten ist)
Dann lautet die resultierende Umgebungsvariable für diesen Benutzer:
(Wirksam) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...;C:\Program Files\Bar\bin
Ich möchte jedoch lieber, dass für ein ganz bestimmtes Betriebssystem-Benutzerkonto die Umgebungsvariable PATH die hat bar\bin
Verzeichnis am Anfang des PFADS und nicht am Ende hat.
Gibt es eine richtige Möglichkeit, Windows anzuweisen, die PATH
Variable eines Benutzers vollständig mit dem Wert für diesen Benutzer zu überschreiben , anstatt ihn an das System anzuhängen?PATH
anzuhängen?
Hinweis: Aus einer Batch-Datei ist dies natürlich nicht wichtig, da Sie die env.vars so einstellen und anpassen können, wie Sie möchten.
PATH
und dieses spezielle Benutzerkonto besser durch ein anderes Benutzerkonto bedient werden kannPATH
. Ich weiß, dass es viele Problemumgehungen gibt, aber ich war daran interessiert, ob dies auf Betriebssystem- / Registrierungsebene möglich ist.Antworten:
Wenn dies nur für Eingabeaufforderungssitzungen erforderlich ist, erstellen Sie eine Profil- / Init-Batchdatei und konfigurieren Sie sie in der Registrierung unter /programming/17404165/how-to-run-a-command-on -Befehls-Eingabeaufforderung-Start-in-Windows . Z.B,
Nehmen Sie dann einfach Änderungen am PATH in dieser Batch-Datei vor. Z.B,
quelle
Ich hatte das gleiche Problem und das hat bei mir funktioniert:
Sie können "Benutzerpfadvariable" erhalten durch:
Die Ausgabe (auf meinem Computer) ist:
Aber dann müssen Sie dies analysieren und den entsprechenden Teil verwenden.
Ich lese hier die Lösung hier und auf meinem Rechner getestet.
quelle
Ich weiß nicht, wie man Systemvariablen ignoriert, aber ich weiß, dass Sitzungsvariablen (über einen
SET
Befehl) Vorrang vor anderen Variablen haben. Sie können also dieSET PATH=C:\Program Files\Bar\bin
Anweisung verwenden und Ihr gewünschter Pfad wird der erste Teil der Variablen sein.Hier ist eine gültige Referenz, und ich berichte hier einen einfachen Zeitraum von dieser Seite:
quelle
PATH
Variable ist eine Ausnahme (Sonderfall) - die Benutzervariable hat keinen Vorrang vor der Systemvariablen. Die Tatsache , dass ein „Session - Variable“ Vorrang vor den beiden Benutzern und System voreingestellten Variablen nehmen ist wahr, aber wie wollen Sie setzen ein Session - Variable automatisch für einen Benutzer? G-Wiz hat diese Frage beantwortet , und, AFAICS, Sie haben dieser Antwort nichts hinzugefügt.