Tomcatアプリケーションを使用してバッチファイルを呼び出そうとしています。バッチは正しく実行されますが、バッチ内のtimeoutコマンドはバッチを一時停止しません。バッチが直接実行されると、タイムアウトはプロセスを期待どおりに一時停止します。バッチファイルでtimeoutコマンドが機能しない
私はバッチを次のように呼び出しています: Runtime.getRuntime()。exec( "test.bat");
Tomcatアプリケーションを使用してバッチファイルを呼び出そうとしています。バッチは正しく実行されますが、バッチ内のtimeoutコマンドはバッチを一時停止しません。バッチが直接実行されると、タイムアウトはプロセスを期待どおりに一時停止します。バッチファイルでtimeoutコマンドが機能しない
私はバッチを次のように呼び出しています: Runtime.getRuntime()。exec( "test.bat");
Runtime.getRuntime().exec()
を呼び出すと、開始されたプロセスの入力ストリームと出力ストリームがリダイレクトされます。このプロセスから起動されたtimeout
は、同じハンドルを継承します。
問題はtimeout
tries to get access to the consoleですが、リダイレクトのためにできない問題です。
は、コンソール入力ストリームがリダイレクトされ
<nul timeout /t 10
、timeout
が失敗したから実行しているこの動作をテストすることができます。 timeout
が失敗した場合
回避策の一つは、ping
コマンドは待機を強制的に実行され、
(timeout /t 10 || >nul ping -n 11 localhost) 2>nul
である可能性があります。
**/NOBREAK **オプションで** TIMEOUT **を実行しましたか?これは、キーを効果的に押し続ける何らかの継続的なやりとりがある場合、排除されます。 – Compo