質問

私はHTAを使用していますが、wshell.runを使用してコマンドラインを実行する機能があります。Windowsの「実行」でこのラインを書いている場合、それは正常に動作しています。 wshell.runで。

行は次のとおりです。

c: xxxx xxx xxx.exe aaa.psl abc

(名前はここにあるxxxです - 実際のコードではありません。)

私が使用しているJavaScriptコードで:

function runCmd()
{
 wshShell.exec( "C:\xxxx\xxx\xxx.EXE aaa.psl abc" );
}

私が得たエラーはxxx.exeアプリケーションにあるということです 「AAA.pslファイルが見つかりませんでした」。

ありがとう、ロテム

役に立ちましたか?

解決 2

okkkktjは男です!! :)

私はexecを実行するためにexecを置き換えることで、あなたの助けを借りてそれを作りました:

これは最終的な(および動作)コードです。

function runCmd()
{
wshShell.CurrentDirectory = "G:\\xxx\\xxx";
wshShell.run( "xxx.EXE xxx.psl abc" ); 
}

他のヒント

xxx.exeプログラムがまったく実行されていることに驚いています。コマンド内のバックスラッシュを逃れる必要があります。

wshShell.Exec( "C:\\xxxx\\xxx\\xxx.EXE aaa.psl abc" );
//                ^-----^----^--- here

あなたが同じことをしている場合 aaa.psl ファイル名、それがあなたの問題です。

あなたがフルパスを渡していない場合 aaa.psl ファイル、その後、ほとんどのプログラム(すべてではない)は、それが カレントディレクトリ, 、そのため、現在のディレクトリを正しく設定することを確認する必要があります(ただし、絶対パスを使用する方が良い場合があります)。

たとえば、メモ帳にファイルを編集するように伝える例は次のとおりです。

shell = WScript.CreateObject("WScript.Shell");
shell.Exec("c:\\windows\\system32\\notepad.exe c:\\temp\\temp.txt");

...または現在のディレクトリ経由:

shell = WScript.CreateObject("WScript.Shell");
shell.CurrentDirectory = "c:\\temp";
shell.Exec("c:\\windows\\system32\\notepad.exe temp.txt");
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top