Die Dinge sind etwas komplizierter, als Microsoft es manchmal erscheinen lässt.
Viele der Umgebungsvariablen sind in der Registrierung gespeichert. Dies bedeutet, dass Sie sie mit dem reg
Befehl abfragen können
Allen Benutzern gemeinsam
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
Spezifisch für die aktuelle Benutzersitzung
reg query HKCU\Environment
reg query "HKCU\Volatile Environment"
Vom Benutzer festgelegt
Wenn Sie Ihre eigene Umgebungsvariable mit dem setx variable value
Befehl dauerhaft festlegen , wird sie in der Registrierung gespeichert, aber nicht sofort verfügbar gemacht.
C:\>setx test removeme
SUCCESS: Specified value was saved.
C:\>reg query "HKCU\Environment"
HKEY_CURRENT_USER\Environment
Path REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Microsoft\WindowsApps;
TEMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
TMP REG_EXPAND_SZ %USERPROFILE%\AppData\Local\Temp
test REG_SZ removeme
Wenn Sie den set variable=value
Befehl verwenden, ist die Variable sofort verfügbar, wird jedoch nicht in der Registrierung gespeichert. Sie können den reg
Befehl nicht verwenden, um sie aufzulisten, obwohl sie von angezeigt werden set
. Diese temporären Umgebungsvariablen bleiben nach dem Beenden der Eingabeaufforderungssitzung nicht bestehen.
Dynamische Umgebungsvariablen
Es gibt Konstrukte, die sich wie Umgebungsvariablen verhalten, die auf diese Weise nicht in der Registrierung gespeichert sind. Zum Beispiel:
echo %TIME%
setx test removeme
dann etwas,set test %test%
damit Sie alle Variablen mit einem einfachen auflisten könnenset
? Ich dachte, dass es möglich ist, ein Befehls- / Batch-Skript zu implementieren, um alle auf Anfrage explizit zu machen ...