我正在尝试通过 tomcat 应用程序调用批处理文件。批处理执行正常,但是批处理中的超时命令没有暂停批处理。当直接执行批处理时,超时确实会按预期暂停进程。
我将批处理调用为:
Runtime.getRuntime().exec("test.bat");
你打电话时Runtime.getRuntime().exec()
已启动进程的输入和输出流被重定向。timeout
从该进程启动会继承相同的句柄。
问题是timeout
尝试访问控制台,由于重定向而无法执行某些操作。
您可以从控制台运行来测试此行为
<nul timeout /t 10
当输入流被重定向时,timeout
fails.
一种解决方法可能是
( timeout /t 10 || >nul ping -n 11 localhost ) 2>nul
If the timeout
失败,一个ping
执行命令强制等待。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)