如何使用JScript(WSH)将HKCU\Environment中的注册表项列表打印到SDTOUT? [英] How do I print the list of registry keys in HKCU\Environment to SDTOUT using JScript (WSH)?

查看:158
本文介绍了如何使用JScript(WSH)将HKCU\Environment中的注册表项列表打印到SDTOUT?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

解决方案

您可以访问用户环境变量通过适当的 WshEnvironment 收藏没有必要混淆注册表:

  var oShell = new ActiveXObject(WScript.Shell); 
var oUserEnv = oShell.Environment(User);

var colVars = new枚举器(oUserEnv); (;!colVars.atEnd(); colVars.moveNext())
{
WScript.Echo(colVars.item());

}

此脚本将输出变量名称以及值(未展开),例如:

 TEMP =%USERPROFILE%\Local Settings\Temp 
TMP =%USERPROFILE%\Local Settings\Temp
Path =%PATH%
PATHEXT =%PATHEXT%; tcl

如果您只需要变量名,就可以像这个:

  // ... 
var strVarName; (;; colVars.atEnd(); colVars.moveNext())
{
strVarName = colVars.item()。split(=)[0]
WScript.Echo(strVarName);
}

编辑:要展开变量,请使用 WshShell.ExpandEnvironmentStrings 方法;例如:

  // ... 
var arr,strVarName,strVarValue; (;!colVars.atEnd(); colVars.moveNext())

{
arr = colVars.item()。split(=);
strVarName = arr [0];
strVarValue = oShell.ExpandEnvironmentStrings(arr [1]);

WScript.Echo(strVarName +=+ strVarValue);
}


I want to iterate over the environment keys and print a list of these items.

解决方案

You can access the user environment variables via the appropriate WshEnvironment collection; there's no need to mess with the registry:

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());
}

This script will output the variable names along with values (non-expanded), e.g.:

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);
}

Edit: To expand the variables, use the WshShell.ExpandEnvironmentStrings method; for example:

// ...
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);
}

这篇关于如何使用JScript(WSH)将HKCU\Environment中的注册表项列表打印到SDTOUT?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆