我想迭代环境键并打印这些项目的列表。
最佳答案
您可以通过相应的 WshEnvironment
访问用户环境变量收藏;无需搞乱注册表:
var oShell = new ActiveXObject("WScript.Shell");
var oUserEnv = oShell.Environment("User");
var colVars = new Enumerator(oUserEnv);
for(; ! colVars.atEnd(); colVars.moveNext())
{
WScript.Echo(colVars.item());
}
此脚本将输出变量名称以及值(未扩展),例如:
TEMP=%USERPROFILE%\Local Settings\Temp TMP=%USERPROFILE%\Local Settings\Temp Path=%PATH% PATHEXT=%PATHEXT%;.tcl
If you need the variable names only, you can extract them like this:
// ...
var strVarName;
for(; ! colVars.atEnd(); colVars.moveNext())
{
strVarName = colVars.item().split("=")[0];
WScript.Echo(strVarName);
}
编辑:要扩展变量,请使用 WshShell.ExpandEnvironmentStrings
方法;例如:
// ...
var arr, strVarName, strVarValue;
for(; ! colVars.atEnd(); colVars.moveNext())
{
arr = colVars.item().split("=");
strVarName = arr[0];
strVarValue = oShell.ExpandEnvironmentStrings(arr[1]);
WScript.Echo(strVarName + "=" + strVarValue);
}
关于scripting - 如何使用 JScript (WSH) 将 HKCU\Environment 中的注册表项列表打印到 SDTOUT?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1911488/