我正在使用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) 谢谢!
答案 0 :(得分:1)
您必须在括号中包含参数:
[items] => stdClass Object
(
[1] => stdClass Object
(
[id] => 146300
[name]=>aa
)
[2] => stdClass Object
(
[id] => 146301
[name]=>bb
)
)
----------------->changing to
[items] => stdClass Object
(
[ 146300] => stdClass Object
(
[name] =>aa
)
[146301] => stdClass Object
(
[name] => bb
)
)
目前,您的脚本使用了几个逗号运算符。首先,它执行x.Run("%comspec% /K dir", 1, true);
方法,评估Run
,最后打破未定义的变量名称(1
)。 JS区分大小写。