我正在使用 ActiveXObject 从 JavaScript 环境运行 shell 脚本。如果我在运行函数中不包含任何参数,一切都会正常工作:
var x = new ActiveXObject("WScript.Shell");
x.Run("%comspec% /K dir")
alert("I am here!")
根据文档,“Run 方法还接受一个 bool 值作为第三个参数,该参数确定脚本是暂停直到被调用的程序完成运行还是继续执行脚本中的下一个命令。如果设置了此值为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
,最后中断为 undefined variable 名称 (True
)。 JS 区分大小写。
关于javascript - ActiveXObject运行不返回(shell),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30513031/