-2

以下にバッチ スクリプトがあります (特定の行番号で Visual Studio のファイルを開くおよびバッチ スクリプトを使用してレジストリ キーの値を取得するにはどうすればよいですか?から派生させることができました)。

@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この%2Javascript によって数値 (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 を使用しています。

4

2 に答える 2

2
@ECHO OFF
SETLOCAL 
FOR /F "tokens=2*" %%A IN (
   'REG QUERY "HKLM\SOFTWARE\Wow6432Node\BI\Science" /v AB'
) DO (set yourpath=%%B%2)
set yourpath=%yourpath:/=\%
ECHO %yourpath%

タスクを実行する必要があります。これは基本的に、まだ回答を受け入れていない以前の質問の繰り返しです。

于 2013-03-29T18:16:14.220 に答える
0

とにかく、バッチスクリプトを気にしている理由がよくわかりません。プログラムの実行レジストリからの読み取りWScript.Shellの両方に使用されるオブジェクトを既に作成しているため、すべてを JavaScript で実行してみませんか?

<html>
<head>
<script language="JavaScript" type="text/javascript">
function Goto(line, file) {
    var osh = new ActiveXObject("WSH.Shell");
    var devenv = osh.RegRead('HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\devenv.exe');
    // is the file variable a full path?  If not, get path from registry.
    var batsample = /^\w\:\\/.test(file)
        ? file
        : osh.RegRead('HKLM\\SOFTWARE\\Wow6432Node\\BI\\Science\\AB')
        + '\\' + file;
    osh.Run(devenv + ' /Command "Edit.Goto ' + line + '" "'
        + batsample + '"');
}
</script>
</head>
<body>
<h3>Run a Program</h3>
<p>Click this to go to line 10 of helloWorld.cpp.
<button onclick="Goto(10, 'examples\\helloWorld\\helloWorld.cpp')">Run Editor</button>
</p>
<p>Click this to go to line 20 of helloWorld.cpp.
<button onclick="Goto(20, 'examples\\helloWorld\\helloWorld.cpp')">Run Editor</button>
</p>
<p>Click this to go to line <input type="text" id="line" value="10" />
of <input type="file" id="file" />.
<button
onclick="Goto(document.getElementById('line').value, document.getElementById('file').value)">Run Editor</button>
</p>
</body>
</html>
于 2013-03-29T18:25:44.373 に答える