0

この vbs の「inp」変数を job.bat という名前のバッチに渡す方法を教えてください。実際、job.bat からエコー (echo %2) を実行すると、inp が正しく渡されていないことに気付きます。プロンプト コマンド ビュー inp vbs から取得した値ではありません。

For Each listElement In xmlDoc.selectNodes("document/Lists/list")
 msgbox "toto"
 inp=listElement.selectSingleNode("entry").text
 out=  listElement.selectSingleNode("output").text
 jeton=  listElement.selectSingleNode("token").text

 dim shell
 set shell=createobject("wscript.shell") 
 shell.run "job.bat ""a file"" **inp** "
 set shell=nothing 
 Next 
4

2 に答える 2

2

あなたが探しているのはこれだと思います。

shell.run "job.bat ""argfile.ext"" " & inp

ただし、Ansgar Wiechersが指摘しているように、これは潜在的に深刻なセキュリティ ホールであり、巧妙に作成された XML ファイルが任意のコマンドを実行する可能性があります。Shell.Applicationバッチ ファイルの引数をカプセル化し、意図しない結果を防ぐには、オブジェクトのShellExecute メソッドに切り替えることを検討してください。

For Each listElement In xmlDoc.selectNodes("document/Lists/list")

    msgbox "toto"
    inp = listElement.selectSingleNode("entry").text
    out = listElement.selectSingleNode("output").text
    jeton = listElement.selectSingleNode("token").text

    set shell=CreateObject("Shell.Application") 
    shell.ShellExecute "job.bat", """a file"" " & inp, "path\to\batfile\", "runas", 1
    set shell=nothing 

Next 
于 2013-04-02T01:38:55.787 に答える