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

如何使用javascript中的参数运行cmd.exe,javascript,command-line,cmd,shellexecute,Javascript,Command Line,Cmd,Shellexecute,我正在尝试编写javascript,它应该运行cmd.exe,其中包含一个指定的命令行,如下所示: 在阅读microsoft站点上的shellexecute方法后,我准备了一段代码: var objShell = new ActiveXObject("Shell.Application"); objShell.ShellExecute("cmd.exe", "C: cd C:\\pr main.exe blablafile.txt auto", "C:\\WINDOWS\\sys

我正在尝试编写javascript,它应该运行cmd.exe,其中包含一个指定的命令行,如下所示:

在阅读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");
但它不会在cmd.exe中插入命令行


有人能帮我吗?先谢谢你

可能您的计算机中没有安装(或注册)此ActiveX控件

应在每个窗口中找到WScript.Shell:

var run=new ActiveXObject('WSCRIPT.Shell').Run("commands to run");
如果要运行的
命令中有空格,则需要使用双引号

编辑

以下内容主要来自MSDN:

让我们看一下
[vDirectory]
。文档中说:“包含sFile指定的文件的目录
的完全限定路径。如果未指定此参数,则使用当前工作目录。”

这意味着此参数的路径无效(在其末尾有
.cmd.exe
)。创建ActiveX的所有示例如下所示:

var objShell = new ActiveXObject("shell.application");
注意
“shell.application”
中的小写字母

5月12日,谢谢你的提问。我以前不知道这个ActiveX控件,它似乎对我很有用

编辑II

但是你明白了吗?您的示例在我的应用程序中非常适用:

objShell.ShellExecute("cmd.exe", "cd C: C:\\cd c:\\ext_file main.exe test.txt", "C:\\WINDOWS\\system32", "open", 1);
除了三个例外:

1) 我在这个答案前面提到的关于路径的问题

2) 转义的
\
也用于参数中

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

var objShell = new ActiveXObject("Shell.Application");
objShell.ShellExecute("cmd.exe", "C: cd C:\\pr main.exe blablafile.txt auto", "C:\\WINDOWS\\system32", "open", "1"); 

是可用的

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

如果路径中没有空格

    mshta.exe "javascript:new ActiveXObject('WScript.Shell').Run('cmd /c start /max C:\\Windows\\Notepad.exe',0,false);close()"
路径中有空格。双引号替换为#


cd C:
几乎没有任何意义,`C:`就够了。对不起,我的英语太差了。我将再次尝试解释:我有一个代码-'var shell=WScript.CreateObject(“WScript.shell”);shell.Run(“C:\\WINDOWS\\system32\\cmd.exe”);'因此,我收到一个打开的dos窗口,其中包含以下字符串:Microsoft Windows[Version 5.2.3790](C)版权所有1985-2003 Microsoft Corp.C:\Bats>我需要类似以下内容:_C:\cd C:\ext_file C:\ext_file>main.exe test.txt\Hmm。。。该
Run
-方法运行
命令以直接在CMD中运行
,您不应该在该字符串中调用
CMD.exe
,只调用要在CMD中执行的命令,就像您刚刚在命令行中编写的一样。Teemu,我已经看过本手册。但这对我没有帮助。最终我需要像蒂姆那样的窗户,你是对的。实际上,我不理解objShell.ShellExecute()中的参数序列。这里有没有获得输出的方法?
    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()"