このように指定されたコマンドラインでcmd.exeを実行するjavascriptを記述しようとしています docs.google.com/file/d/0B7QHCoQDlEvKWUZSX3oxUDI2SDg/edit :
Microsoftサイトでshellexecuteメソッドを読んだ後、コードを準備します。
var objShell = new ActiveXObject("Shell.Application");
objShell.ShellExecute("cmd.exe", "C: cd C:\\pr main.exe blablafile.txt auto", "C:\\WINDOWS\\system32", "open", "1");
ただし、cmd.exeにコマンドラインは挿入されません。
誰かが私を助けてくれませんか?前もって感謝します。
コンピューターにこのActiveXコントロールがインストール(または登録)されていない可能性があります。
WScript.Shell
はすべてのWindowsで見つかります。
var run=new ActiveXObject('WSCRIPT.Shell').Run("commands to run");
commands to run
にスペースがある場合は、二重引用符を使用する必要があります。
編集
以下のコンテンツは主にMSDNからのものです: http://msdn.Microsoft.com/en-us/library/windows/desktop/gg537745(v = vs.85).aspx
iRetVal = Shell.ShellExecute(
sFile,
[ vArguments ],
[ vDirectory ],
[ vOperation ],
[ vShow ]
)
[vDirectory]
をとりましょう。ドキュメントには、「sFileで指定されたファイルを含む完全修飾path of the directory
。このパラメーターが指定されていない場合、現在の作業ディレクトリが使用されます」と記載されています。
これは、この引数に無効なパスがあることを意味します(引数の最後に.cmd.exe
が付いています)。また、ActiveXを作成するためのすべての例は次のとおりです。
var objShell = new ActiveXObject("Shell.application");
"Shell.application"
の小文字に注意してください。
そしてMay12、これを尋ねてくれてありがとう。以前はこのActiveXコントロールについて知りませんでしたが、私にとって非常に便利なようです。
EDIT II
しかし、あなたはそれを理解しましたか?あなたの例は私のアプリで完璧に動作します:
objShell.ShellExecute("cmd.exe", "cd C: C:\\cd c:\\ext_file main.exe test.txt", "C:\\WINDOWS\\system32", "open", 1);
3つの例外があります。
1)パスについてこの回答の前半で述べたもの
2)エスケープされた\
は引数でも使用されます。
3)最後の引数は文字列ではなく数値のタイプです。