【问题标题】:timeout command not working in batch files超时命令在批处理文件中不起作用
【发布时间】:2016-09-17 06:51:21
【问题描述】:

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

我正在调用批处理: Runtime.getRuntime().exec("test.bat");

【问题讨论】:

  • 您是否使用 /NOBREAK 选项运行了 TIMEOUT。这将排除是否有某种持续的交互有效地按下一个键。

标签: java batch-file


【解决方案1】:

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

问题是timeouttries to get access to the console,由于重定向而无法执行。

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

<nul timeout /t 10 

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

一种解决方法可能是

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

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

【讨论】:

  • 在 Windows 10 上进行了测试,它按预期工作!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-07
  • 2014-02-09
  • 1970-01-01
  • 2014-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多