我在下面有一个批处理脚本(我可以从Open a file in Visual Studio at a specific line number和How can I get the value of a registry key using a batch script?)中派生出来。
@echo off
for /f "tokens=3*" %%x in ('reg query "HKLM\SOFTWARE\Microsoft\Window\CurrentVersion\App Paths\devenv.exe"') do set DEVENV="%%x %%y"
%DEVENV% /Command "Edit.Goto %1" "E:\Bat\Example\Sample\%2"
@echo off
我使用下面给出的 Javascript 代码运行上述批处理脚本,其中 和 的值%1
由%2
该 Javascript 作为数字 (10) 和路径 ( examples/helloWorld/helloWorld.cpp
) 传递,如下所示
<html>
<head>
<script language="JavaScript" type="text/javascript">
MyObject = new ActiveXObject( "WScript.Shell" )
function Goto()
{ MyObject.Run("D:/GoToLine2.bat 10 examples/helloWorld/helloWorld.cpp") ;}
</script>
</head>
<body>
<h1>Run a Program</h1>
This script launches a bat file >> <p>
<button onclick="Goto()">Run BatFile</button>
</body>
</html>
我的问题是“E:\Bat\Example\Sample”的注册表项是HKLM\SOFTWARE\Wow6432Node\BI\Science\AB
并且我不知道如何获取它的值,因此我不必像E:\Bat\Example\Sample\
批处理文件中那样传递路径,而只需获取它从注册表中,并将“%2”(我从 Javascript 代码中获得 - 即examples/helloWorld/helloWorld.cpp
)附加到它的值。我正在使用 Windows 7 64 位 PC。