In Windows (ad es. Versione 10) è possibile elencare le variabili di ambiente usando il comando
set
Come si elencano solo le variabili di ambiente uguali per tutti gli utenti o solo le variabili di ambiente per l'utente o la sessione corrente?
In Windows (ad es. Versione 10) è possibile elencare le variabili di ambiente usando il comando
set
Come si elencano solo le variabili di ambiente uguali per tutti gli utenti o solo le variabili di ambiente per l'utente o la sessione corrente?
Risposte:
Le cose sono un po 'più complicate di quanto a volte Microsoft sembri.
Molte variabili di ambiente sono memorizzate nel registro. Questo significa che puoi interrogarli usando il reg
comando
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
reg query HKCU\Environment
reg query "HKCU\Volatile Environment"
Se si imposta in modo permanente la propria variabile di ambiente utilizzando il setx variable value
comando, viene memorizzata nel registro ma non immediatamente disponibile.
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
Se si utilizza il set variable=value
comando, la variabile è immediatamente disponibile ma non è memorizzata nel registro. Non è possibile utilizzare il reg
comando per elencarli sebbene siano mostrati da set
. Queste variabili di ambiente temporanee non persistono dopo aver terminato la sessione del prompt dei comandi.
Esistono costrutti che agiscono come variabili d'ambiente che non sono archiviate nel registro in questo modo. Per esempio:
echo %TIME%
refreshenv.cmd
un'utilità che è di 10 righe di codice e fondamentalmente interroga e aggiorna le voci di registro
SET
comando mostra Variabili di ambiente dinamiche? Sto cercando di trovare qualsiasi cosa impostata da Microsoft Build Tools durante una sessione, voglio solo coprire le mie basi.
Per un output pulito senza linee extra e spazi neri utilizzare i seguenti comandi in cmd.exe
:
Variabili di ambiente dell'utente:
FOR /F "tokens=1,3* skip=2" %G IN ('reg query HKCU\Environment') DO @echo %G=%H %I
Variabili d'ambiente globali (di sistema):
FOR /F "tokens=1,3* skip=2" %G IN ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"') DO @echo %G=%H %I
Funziona in Windows 7-10 e molto probabilmente anche nelle versioni precedenti.
VS140COMNTOOLS REG_SZ C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools
appare come giusta VS140COMNTOOLS=C:\Program
.
digitare il comando batch: echo% temp%
Se la variabile di ambiente "temp" contiene "H: \ Users \ amacm \ AppData \ Local", Windows risponderà immediatamente con quanto segue:
H: \ Users \ amacm \ AppData \ Local
Se non esiste una variabile di ambiente denominata "temp", Windows risponderà con il seguente:
% Temp%
setx test removeme
qualcosa inset test %test%
modo da poter avere tutte le variabili elencate con un sempliceset
? Pensavo che fosse possibile implementare uno script di comando / batch per renderli espliciti su richiesta ...