如何使用javascript中的参数运行cmd.exe

May*_*y12 10 javascript command-line cmd shellexecute

我正在尝试编写javascript,它应该运行带有指定命令行的cmd.exe,例如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");
Run Code Online (Sandbox Code Playgroud)

但它不会在cmd.exe中插入命令行.

有人能帮助我吗?先感谢您.

Tee*_*emu 8

也许您没有在计算机中安装(或注册)此ActiveX控件.

WScript.Shell 应该在每个Windows中找到:

var run=new ActiveXObject('WSCRIPT.Shell').Run("commands to run");
Run Code Online (Sandbox Code Playgroud)

如果有空格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 ]
)
Run Code Online (Sandbox Code Playgroud)

我们来看吧[vDirectory].文档说:" path of the directory包含sFile指定文件的完全限定条件.如果未指定此参数,则使用当前工作目录."

这意味着您拥有此参数的无效路径(.cmd.exe在其末尾).此外,创建ActiveX的所有示例都是这样的:

var objShell = new ActiveXObject("shell.application");
Run Code Online (Sandbox Code Playgroud)

请注意小写字母"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);
Run Code Online (Sandbox Code Playgroud)

有三个例外:

1)我在这个答案的早期提到的关于路径的那个

2)Escaped \也用于参数.

3)最后一个参数是数字的类型,而不是字符串.