web-dev-qa-db-ja.com

Jenkinsの2つのバッチコマンドライン間にタイムアウトを追加する

これはJenkinsで起動したいコードです:

start cmd.exe /k "node "C:\Program Files\Appium\node_modules\appium\bin\appium.js" -a 127.0.0.1 -p 4723"
ping 127.0.0.1 -n 30 > nul
C:\path\NUnit-2.6.4\NUnit-2.6.4\bin\nunit-console.exe C:\path\NUnit-2.6.4\NUnit-2.6.4\bin\apk\UnitTestProject1.dll

これは、一時停止しようとするたびに表示されるエラーです。

"ERROR: Input redirection is not supported, exiting the process immediately."

timeout /T 60およびsleep 60と同じエラー

this post によると、タイムアウトは非対話型スクリプトでは機能しません。

私の状況で一時停止を追加するにはどうすればよいですか?

Will Ryanの編集:

私はこれを試してください:

enter image description here

ビルドは機能しましたが、テスト時間はわずか0.5秒で、一時停止は何もしません

enter image description here

コンソール出力は次のとおりです。

C:\Program Files\Jenkins\jobs\ZFAIL\workspace>echo "--" 
"--"

C:\Program Files\Jenkins\jobs\ZFAIL\workspace>PING 1.1.1.1 -n 1 -w 30000  1>NUL 

C:\Program Files\Jenkins\jobs\ZFAIL\workspace>echo "++" 
"++"

C:\Program Files\Jenkins\jobs\ZFAIL\workspace>exit 0 
Finished: SUCCESS
18
CE_

Windowsバッチコマンドの実行で次のコマンドを使用できると思います(100秒待機します)。

waitfor SomethingThatIsNeverHappening /t 100 

これは、ビルドを壊す可能性のあるエラーを返します。それを回避するには、エラー出力をリダイレクトします。

waitfor SomethingThatIsNeverHappening /t 100 2>NUL
31
Yauheni Basalai

これを使用できます:

PING 1.1.1.1 -n 1 -w 30000 >NUL

これは1回のping試行を送信し、応答を30秒待機します。 「エラー:入力リダイレクトはサポートされていません。すぐにプロセスを終了します」というメッセージが表示される理由がわかりません。メッセージですが、上記のコマンドを定期的に積極的に使用しています。

9
Will Ryan

Yauheni Basalaiの答えからエラーメッセージを取り除きたい場合は、> nul 2>&1を追加してstderrをstdoutに送信してみてください

waitfor SomethingThatIsNeverHappening /t 100 >nul 2>&1

クレジットは http://brisray.com/computers/batch-delay.htm

2
bwang

Cmdシェルを使用するVSTS "コマンドライン"ユーティリティ(v 2. *)で同様の問題が発生しましたが、次の(昇格されたPowerShellセッションから)を使用しました。

Add-Content c:\windows\sleep.cmd "call powershell -NoProfile -ExecutionPolicy ByPass -command sleep %1"
0
Jules Clements