Javascript wshell.run无法正常工作

Rot*_*tem 2 javascript wsh hta

我正在使用HTA并且在其中我有一个应该使用wshell.run运行命令行的函数,如果我在Windows'Run'util中写这行,它工作正常,我希望它也能在HTA中工作用wshell.run.

这条线是:

C:\ xxxx\xxx\xxx.EXE aaa.psl abc

(名称是xxx就在这里 - 而不是真正的代码..)

在我正在使用的javascript代码中:

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

我得到的错误是在xxx.EXE应用程序中说"无法打开找不到aaa.psl文件".

谢谢,Rotem

T.J*_*der 5

我很惊讶xxx.EXE程序正在运行.您需要在命令中转义那些反斜杠:

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

如果你在aaa.psl文件名中做同样的事情,那就是你的问题.

如果你没有传递一个完整的aaa.psl文件路径,那么大多数程序(不是全部)都希望它在当前目录中,所以你要确保你正确设置当前目录(尽管使用绝对目录)路径可能是更好的选择).

这是一个例子,告诉记事本编辑文件:

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

...或通过当前目录:

shell = WScript.CreateObject("WScript.Shell");
shell.CurrentDirectory = "c:\\temp";
shell.Exec("c:\\windows\\system32\\notepad.exe temp.txt");
Run Code Online (Sandbox Code Playgroud)