バッチスクリプトがあります:
test.bat
echo first arg is %1
pause
次のような管理者権限を持つvbscriptから呼び出したいこと:
test.vbs
Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute "test.bat", "argument", "", "runas", 1
これは問題なく機能しますが、スペースを含むパス引数を単一の引数として渡すことができません。基本的に、引数をスペースで囲む必要がありますが、何をしようとしても機能しません。バッチを呼び出しているように見えますが、cmdウィンドウが点滅して消えてしまうため、何が問題になっているのかわかりません。私はもう試した:
UAC.ShellExecute "test.bat", """has spaces""", "", "runas", 1
と
UAC.ShellExecute "test.bat", Chr(34) & "has spaces" & Chr(34), "", "runas", 1
と
UAC.ShellExecute "test.bat", '"has spaces"', , "runas", 1
と
UAC.ShellExecute "cmd", "/c test.bat " & chr(34) & "has spaces" & chr(34), "", "runas", 1
しかし、運はありません。私が間違っていることについて何か提案はありますか?