Все немного сложнее, чем иногда делает Microsoft.
Многие переменные среды хранятся в реестре. Это означает, что вы можете запросить их с помощью reg
команды
Общий для всех пользователей
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
Специфично для текущего сеанса пользователя
reg query HKCU\Environment
reg query "HKCU\Volatile Environment"
Устанавливается пользователем
Если вы постоянно устанавливаете свою собственную переменную среды с помощью setx variable value
команды, она сохраняется в реестре, но не сразу становится доступной.
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
Если вы используете set variable=value
команду, переменная доступна сразу, но не сохраняется в реестре. Вы не можете использовать reg
команду для их перечисления, хотя они показаны set
. Эти временные переменные среды не сохраняются после завершения сеанса командной строки.
Динамические переменные среды
Существуют конструкции, которые действуют как переменные среды, которые не хранятся в реестре таким образом. Например:
echo %TIME%
setx test removeme
что-то,set test %test%
чтобы вы могли перечислить все переменные с простымset
? Я думал , что это возможно реализовать команды / пакетный сценарий , чтобы сделать все они явно по запросу ...refreshenv.cmd
утилита, которая состоит из 10 строк кода, и в основном она запрашивает и обновляет записи реестраSET
Показывает ли команда переменные динамической среды? Я пытаюсь найти что-нибудь и все, что Microsoft Build Tools установил во время сеанса, просто хочу охватить мои основы.Для чистого вывода без лишних строк и пробелов используйте следующие команды
cmd.exe
:Переменные среды пользователя:
FOR /F "tokens=1,3* skip=2" %G IN ('reg query HKCU\Environment') DO @echo %G=%H %I
Глобальные (системные) переменные среды:
FOR /F "tokens=1,3* skip=2" %G IN ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"') DO @echo %G=%H %I
Он работает в Windows 7-10 и, скорее всего, в более ранних версиях.
источник
VS140COMNTOOLS REG_SZ C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools
показывает, как простоVS140COMNTOOLS=C:\Program
.введите пакетную команду: echo% temp%
Если переменная среды «temp» содержит «H: \ Users \ amacm \ AppData \ Local», Windows немедленно ответит следующим:
H: \ Users \ amacm \ AppData \ Local
Если переменная среды с именем «temp» отсутствует, Windows ответит следующим образом:
% Temp%
источник