2017-03-23 7 views
0

javascriptを使用してバットファイルを実行しようとしています。私はpowershellを使ってみましたが、正しく動作していないようです。javascriptからバットファイルを実行する

var oShell = WScript.CreateObject("WScript.Shell"); 
oShell.Exec("D:"); 
oShell.Exec("cd dir"); 
oShell.Exec("start user.bat"); 

私もことを試みた:

var oShell = WScript.CreateObject("WScript.Shell"); 
oShell.Exec("start D:\dir\user.bat"); 

は、時にはそれが実行されると、時々私はこれらのエラーを取得し、「期待進数」、「アクセスが拒否されました」ここに私が試したコードです。 私は本当に混乱しています。私がしようとしているのは、javascriptファイルからバットファイルを実行することだけです。

誰でもどのようにしたらいいですか?ありがとうございました!

答えて

2

まず、JavaScriptにはオペレーティングシステムサービスがありません。したがって、あなたは実際にJavaScriptで書かれたWindows Script Host(WSH)スクリプトを指しています。

第2に、startは実行可能ではなく、cmd.exeに組み込まれたコマンドです。

途中で混乱するので、WSHスクリプトからシェルスクリプト(バッチファイル)を実行するように思えます。最も簡単な方法は、(これはすでに試したものにやや近いです)、このようなものです:

var wshShell = new ActiveXObject("WScript.Shell"); 
wshShell.Run("D:\\dir\\user.bat"); 

WshShell COMオブジェクト参照を作成するには、(WScript.ShellをPROGID)newキーワードとActiveXObjectコンストラクタを使用します。また、\はJavaScript文字列の文字をエスケープするため、JavaScript文字列ではバックスラッシュ(\)を2倍にする必要があります。

+0

ありがとうございました!私はそれがスラッシュで何かであるかもしれないという気持ちがあったが、それは助けにならなかったので、私はそうではないと思った。しかし、私は問題がそれと "スタート"コマンドの両方であったと思います!どうもありがとうございます! – morha13

関連する問題