我有以下的javascript。我想获取特定注册表项中的值名称的数据。例如,如果密钥为HKEY_LOCAL_MACHINE\\SOFTWARE\\VideoLAN\\VLC
且值名称为InstallDir
,我如何获取InstallDir
的数据(即路径,即D:\Program Files\VideoLAN\VLC
)。如何在JavaScript或VBScript中获取此路径?
<html>
<head>
<script language="JavaScript" type="text/javascript">
MyObject = new ActiveXObject( "WScript.Shell" )
function Goto()
{
var bat= MyObject.RegRead("HKEY_LOCAL_MACHINE\\SOFTWARE\\VideoLAN\\VLC\\InstallDir");
MyObject.Run("bat/GoToLine2.bat 10 /examples/helloWorld/helloWorld.txt") ;
}
</script>
</head>
<body>
<button onclick="Goto()">Run BatFile</button>
</body>
</html>
正如您所看到的,我希望将InstallDir
的文件路径保存在变量(bat)中以运行批处理文件(GoToLine2.bat
),该文件位于{{的值数据中1}}(即InstallDir
)。你能否告诉我如何才能获得这条路径,以便我不必使用
D:\Program Files\VideoLAN\VLC
提前致谢。
答案 0 :(得分:0)
在某些语言中,您可以使用变量插值/替换将变量的内容放入字符串文字中:
perl -e 'my $v = "c"; my $s = "${v}x"; print $s, "\n";'
cx
VBScript和J(ava)脚本都没有此功能:
% v = "c" // given variable v containing "c"
c
% s = "vx" // j(ava)script does not interpolate
vx
% s = v + "x" // so use concatenation
cx
另一种选择是使用替换而不是连接:
>> v = "c"
>> s = Replace("$vx", "$v", v)
>> WScript.Echo s
>>
cx
答案 1 :(得分:0)
MyObject.Run(bat + "\\GoToLine2.bat 10 /examples/helloWorld/helloWorld.txt");
好的,我觉得我错了。该路径有空格,因此您需要用引号括起来,即:
MyObject.Run("\"" + bat + "\\GoToLine2.bat\" 10 /examples/helloWorld/helloWorld.txt");