Windows-Umgebungsvariable Benutzer vs. system-Umgebungsvariablen
In Windows, gibt es eine shell/PowerShell-Befehl list user-environment Variablen und system-environment-variable einzeln?
Wenn ich das Tue -
SET TEMP
Windows zeigt die user-Umgebungsvariable anstelle der system-variable für TEMP
.
Ich bin auf der Suche nach einem shell-Befehl/Schalter für die Anzeige dieser Variablen separat.
- Schauen Sie einfach bei Systemsteuerung > System - > Advanced - > Umgebungsvariablen. Es muss nicht unbedingt mit dem Wert der variable, da es überschrieben werden kann.
- Ja, User-Variable Vorrang. Ich versuche, Liste, diese Variablen separat in meinem Skript.
- Nein, Eltern Umwelt Vorrang hat, wird der Kind-Prozess erbt es. Manchmal ist es nicht. Und der Prozess selbst kann es ändern. Die registry gibt nur die default-Werte. HKLM\System\CurrentControlSet\Control\Session Manager\Environment und HKCU\Environment.
- Danke. Ich habe versucht, die Suche in der Dokumentation von Microsoft auf die env-variable Vorrang - noch zu finden.
Du musst angemeldet sein, um einen Kommentar abzugeben.
In der PowerShell gibt es kein cmdlet für Sie, aber Sie können die zugrunde liegenden .NET-Methoden in der Umwelt-Klasse:
[Environment]::GetEnvironmentVariable("TEMP", "Machine")
Verwenden Sie die folgende batch-Datei:
Verwenden Sie eine Befehlszeile ersetzen
%%
mit%
.Ausgabe:
Beachten Sie, dass die
HKEY_CURRENT_USER
nimmt precedance (aber für einige Grund%USERPROFILE%
erweitert, um einen Kurznamen, der bei der Auswertung%TEMP%
):