繁体   English   中英

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

[英]How to Run cmd.exe with parameters from javascript

我正在尝试编写 javascript ,它应该像这样docs.google.com/file/d/0B7QHCoQDlEvKWUZSX3oxUDI2SDg/edit一样运行带有指定命令行的 cmd.exe :

我在微软网站上阅读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 中插入命令行。

有人可以帮我吗? 先感谢您。

也许您的计算机中没有安装(或注册)这个 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] 文档说:“包含由 sFile 指定的文件path of the directory的完全限定path of the directory 。如果未指定此参数,则使用当前工作目录。”

这意味着此参数的路径无效(以.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);

除了三个例外:

1)我在这个关于路径的答案中早些时候提到的那个

2) 转义\\也在参数中使用。

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

如果我理解正确,您只对使用参数调用另一个文件感兴趣。 这是我从快捷方式或批处理文件调用另一个文件的示例

如果路径中没有空格

    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()"
var objShell = new ActiveXObject("Shell.Application");
objShell.ShellExecute("cmd.exe", "C: cd C:\\pr main.exe blablafile.txt auto", "C:\\WINDOWS\\system32", "open", "1"); 

可用

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM