我希望有一个简单的答案。是否有一个命令可以为我提供所有用户环境变量的列表? (或用户环境变量的值,如果存在)。我知道有'设置'命令,但它列出了用户和系统变量。我正在运行一个脚本,我想知道用户变量中是否存在特定的环境变量。只有其他选项可以使用注册表信息。但我想知道这是否可以使用命令行或类似的东西。
由于
答案 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
答案 3 :(得分:-1)
在提升的cmd提示符下使用psexec(https://technet.microsoft.com/en-us/sysinternals/psexec.aspx),以下内容将为您提供系统变量列表。
psexec -s cmd /c set
您可以在正常提示下将该列表与set
列表区分开,以检测哪些变量不同,即用户变量。
我没有看到更直接的方法(除了从注册表中读取环境)。