Sous Windows (par exemple, la version 10), vous pouvez répertorier les variables d’environnement à l’aide de la commande
set
Comment répertoriez-vous uniquement les variables d'environnement identiques pour tous les utilisateurs ou uniquement les variables d'environnement destinées à l'utilisateur ou à la session en cours?
Les choses sont un peu plus compliquées que Microsoft ne le laisse parfois paraître.
Un grand nombre de variables d'environnement sont stockées dans le registre. Cela signifie que vous pouvez les interroger à l'aide de la commande reg
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
reg query HKCU\Environment
reg query "HKCU\Volatile Environment"
Si vous définissez de manière permanente votre propre variable d'environnement à l'aide de la commande setx variable value
, celle-ci est stockée dans le registre mais n'est pas immédiatement disponible.
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
Si vous utilisez la commande set variable=value
, la variable est disponible immédiatement mais n'est pas stockée dans le registre. Vous ne pouvez pas utiliser la commande reg
pour les lister bien qu'ils soient affichés par set
. Ces variables d'environnement temporaires ne persistent pas après la fin de la session d'invite de commande.
Certaines constructions agissent comme des variables d'environnement qui ne sont pas stockées dans le registre de cette manière. Par exemple:
echo %TIME%
Pour une sortie propre sans lignes supplémentaires ni espaces noirs, utilisez les commandes suivantes dans cmd.exe
:
Variables d'environnement utilisateur:
FOR /F "tokens=1,3* skip=2" %G IN ('reg query HKCU\Environment') DO @echo %G=%H %I
Variables d'environnement globales (système):
FOR /F "tokens=1,3* skip=2" %G IN ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"') DO @echo %G=%H %I
Cela fonctionne sous Windows 7-10, et très probablement aussi dans les versions précédentes.