从cmd提示符获取用户环境变量

时间:2015-11-20 19:26:55

标签: windows command-line

我希望有一个简单的答案。是否有一个命令可以为我提供所有用户环境变量的列表? (或用户环境变量的值,如果存在)。我知道有'设置'命令,但它列出了用户和系统变量。我正在运行一个脚本,我想知道用户变量中是否存在特定的环境变量。只有其他选项可以使用注册表信息。但我想知道这是否可以使用命令行或类似的东西。

由于

4 个答案:

答案 0 :(得分:1)

查询注册表可能是仅返回用户环境变量的最简单方法:

reg query HKEY_CURRENT_USER\Environment

这是返回输出内容的示例:

λ reg query HKEY_CURRENT_USER\Environment

HKEY_CURRENT_USER\Environment
    ChocolateyLastPathUpdate    REG_SZ    132148451031142736
    ChocolateyToolsLocation    REG_SZ    C:\tools
    ip    REG_SZ    ipconfig /all | findstr /IR "ipv4 ethernet adapter" | findstr /IRV "description tunnel vpn dial bluetooth [2-9]:$" | findstr /LV "*"
    Path    REG_EXPAND_SZ    C:\PATH\gnuwin32\bin;%USERPROFILE%\AppData\Local\Microsoft\WindowsApps;
    QB    REG_SZ    tasklist /FI "IMAGENAME eq qbittorrent.exe"
    TEMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp
    TMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp

答案 1 :(得分:0)

1-在批处理文件中的用户环境中获取变量的方法:

(
    echo Set Sh = CreateObject^("WScript.Shell"^)
    echo Set User = Sh.Environment^("user"^)
    echo For Each strItem In User
    echo msgbox strItem
    echo Next
    ) > %tmp%\user.vbs
    start /wait %tmp%\user.vbs
    del /f %tmp%\user.vbs

2-在VBscript文件中:

  Set Sh = CreateObject( "WScript.Shell" )
    Set User = Sh.Environment( "user" )
    For Each strItem In User
        txt= strItem & vbCrlf & txt
    Next
    sh.popup txt,10,"list ofvariables in User environment"

答案 2 :(得分:-1)

是的,只需使用set命令:

SET

List all environment variables from command line?

如果您想查看具有指定前缀的所有内容,请使用:

SET prefix 

enter image description here

答案 3 :(得分:-1)

在提升的cmd提示符下使用psexec(https://technet.microsoft.com/en-us/sysinternals/psexec.aspx),以下内容将为您提供系统变量列表。

psexec -s cmd /c set

您可以在正常提示下将该列表与set列表区分开,以检测哪些变量不同,即用户变量。

我没有看到更直接的方法(除了从注册表中读取环境)。