如何使用javascript中的参数运行cmd.exe
我正在尝试编写javascript,它应该运行cmd.exe,其中包含一个指定的命令行,如下所示: 在阅读microsoft站点上的shellexecute方法后,我准备了一段代码:如何使用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
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()"