ActiveXObject运行不返回(shell)

ActiveXObject run does not return (shell)

本文关键字:shell 返回 运行 ActiveXObject      更新时间:2023-09-26

我正在使用ActiveXObject从JavaScript环境运行shell脚本。如果我在run函数中不包含任何参数,一切都可以正常工作:

var x = new ActiveXObject("WScript.Shell");
x.Run("%comspec% /K dir")
alert("I am here!")

根据文档,"Run方法还接受一个布尔值作为第三个参数,该参数决定脚本是暂停直到被调用的程序完成运行,还是继续执行脚本中的下一个命令。如果这个值被设置为False(默认值),Run方法只是发出命令来运行程序,但不检查以确保程序实际运行。如果第三个参数设置为True,则脚本将等待程序完成运行,返回程序提供的整数退出码,然后继续执行脚本的下一行。"

我试图同时使用

x.Run("%comspec% /K dir"), 1, True
alert("I am here!")

x.Run("%comspec% /K dir"), 1, False
alert("I am here!")

但是我的代码总是挂起。警报永远不会显示。我做错了什么?(我需要在我的代码中使用第三个参数= true)谢谢你!

必须将参数包含在括号中:

x.Run("%comspec% /K dir", 1, true);

当前您的脚本使用一对逗号操作符。首先执行Run方法,计算1,最后分解为一个未定义的变量名(True)。JS是区分大小写的