有没有办法在 Windows Scripting Host (WSH) cscript.exe 中从 JScript(不是 javascript)运行命令行命令?

2024-01-20

我正在编写一个在 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(使用前将#替换为@)

有没有办法在 Windows Scripting Host (WSH) cscript.exe 中从 JScript(不是 javascript)运行命令行命令? 的相关文章

随机推荐