12

このdocs.google.com/file/d/0B7QHCoQDlEvKWUZSX3oxUDI2SDg/editのように、指定したコマンドラインで cmd.exe を実行する javascript を作成しようとしています:

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 にコマンド ラインは挿入されません。

誰でも私を助けることができますか?前もって感謝します。

4

3 に答える 3

9

この 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]。ドキュメントには、「path of the directorysFile で指定されたファイルを含む完全修飾。このパラメーターが指定されていない場合、現在の作業ディレクトリが使用されます。」

これは、この引数のパスが無効であることを意味します (.cmd.exe末尾にあります)。また、ActiveX を作成するためのすべての例は次のようになります。

var objShell = new ActiveXObject("shell.application");

の小文字に注意してください"shell.application"

5 月 12 日、お問い合わせいただきありがとうございます。以前はこの ActiveX コントロールについて知りませんでしたが、非常に便利なようです。

編集Ⅱ

しかし、あなたはそれを理解しましたか?あなたの例は私のアプリで完璧に機能します:

objShell.ShellExecute("cmd.exe", "cd C: C:\\cd c:\\ext_file main.exe test.txt", "C:\\WINDOWS\\system32", "open", 1);

3 つの例外があります。

1) パスに関するこの回答の前半で言及したもの

\2)引数にも使用されるエスケープ。

3) 最後の引数は文字列ではなく数値型です。

于 2012-04-17T07:54:32.813 に答える
0

私の理解が正しければ、パラメータを使用して別のファイルを呼び出すことにのみ関心があります。これは、ショートカットまたはバッチ ファイルから別のファイルを呼び出す私の例です。

パスにスペースがない場合

    mshta.exe "javascript:new ActiveXObject('WScript.Shell').Run('cmd /c start /max C:\\Windows\\Notepad.exe',0,false);close()"

パスにスペースあり。二重引用符は # に置き換えられます

    mshta.exe "javascript:new ActiveXObject('WScript.Shell').Run('cmd /v /c set a=""&call set #=!a:~0,1!&start /max C:\\!#!Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe!#!',1,true);close()"
于 2020-08-28T16:28:37.320 に答える
-2
var objShell = new ActiveXObject("Shell.Application");
objShell.ShellExecute("cmd.exe", "C: cd C:\\pr main.exe blablafile.txt auto", "C:\\WINDOWS\\system32", "open", "1"); 

使える

于 2015-01-27T14:33:14.840 に答える