Windows user environment variable vs. system environment variable

后端 未结 2 1258
醉梦人生
醉梦人生 2021-02-05 13:29

In Windows, is there any shell/PowerShell command to list user environment variable and system environment variable separately?

If I do -

SET TEMP
         


        
2条回答
  •  萌比男神i
    2021-02-05 13:51

    Use the following batch file:

    @echo off
    for /f "tokens=3 usebackq" %%a in (`reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" ^| findstr TEMP`)  do @echo System variable TEMP = %%a
    for /f "tokens=3 usebackq" %%a in (`reg query "HKEY_CURRENT_USER\Environment" ^| findstr TEMP`)  do @echo Current user variable TEMP = %%a
    

    To use from a command line replace %% with %.

    Output:

    System variable TEMP = %SystemRoot%\TEMP
    Current user variable TEMP = %USERPROFILE%\AppData\Local\Temp
    

    Note that the HKEY_CURRENT_USER takes precedance (but for some reason %USERPROFILE% is expanded to a shortname when evaluating %TEMP%):

    echo %USERPROFILE%
    USERPROFILE=C:\Users\DavidPostill
    
    echo %TEMP%
    C:\Users\DAVIDP~1\AppData\Local\Temp
    

提交回复
热议问题