timeout命令在批处理文件中不起作用

时间:2016-09-17 06:51:21

标签: java batch-file

我正在尝试通过tomcat应用程序调用批处理文件。批处理正确执行,但批处理中的超时命令不会暂停批处理。直接执行批处理时,超时会按预期暂停进程。

我正在调用批处理: 调用Runtime.getRuntime()EXEC( “test.bat的”);

1 个答案:

答案 0 :(得分:10)

当您调用Runtime.getRuntime().exec()时,重定向已启动进程的输入和输出流。从此进程启动的timeout将继承相同的句柄。

问题是timeout tries to get access to the console,由于重定向而无法做到。

您可以测试从控制台运行的此行为

<nul timeout /t 10 

重定向输入流时,timeout失败。

一种解决方法可能是

( timeout /t 10 || >nul ping -n 11 localhost ) 2>nul

如果timeout失败,则执行ping命令强制等待。