我正在编写一个在 cscript.exe 中运行的 JScript 程序。是否可以从脚本内运行命令行命令。这确实会让工作变得简单,因为我可以运行某些命令,而不是在 jscript 中编写更多代码来完成同样的事情。
例如:
为了等待按键 10 秒,我可以立即使用超时命令
timeout /t 10
在 jscript 中实现这个意味着更多的工作。
顺便说一句,我使用的是 Vista 和 WSH v5.7
有任何想法吗?谢谢!
您可以使用以下命令执行 DOS 命令WshShell.Run http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx method:
var oShell = WScript.CreateObject("WScript.Shell");
oShell.Run("timeout /t 10", 1 /* SW_SHOWNORMAL */, true /* bWaitOnReturn */);
如果您特别需要暂停脚本执行直到按下某个键或超时,您可以使用WshShell.Popup http://msdn.microsoft.com/en-us/library/x83z1d9f.aspx方法(带有超时选项的对话框):
var oShell = WScript.CreateObject("WScript.Shell");
oShell.Popup("Click OK to continue.", 10);
但是,此方法在 cscript 下运行时也会显示一个消息框。
本文描述了另一种可能的方法:如何在用户按下键盘上的按键时暂停脚本然后恢复脚本? http://www.microsoft.com/technet/scriptcenter/resources/qanda/oct04/hey1005.mspx简而言之,您可以使用WScript.StdIn http://msdn.microsoft.com/en-us/library/1y8934a7.aspx属性直接从输入流读取,并以这种方式等待输入。但是,从输入流读取不支持超时,仅在超时时返回ENTER
按键(不是任何键)。无论如何,这是一个例子,以防万一:
WScript.Echo("Press the ENTER key to continue...");
while (! WScript.StdIn.AtEndOfLine) {
WScript.StdIn.Read(1);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)