バッチファイルのセットをパラレルで1つのバッチファイルから実行し、それぞれから終了コードを取得する方法を教えてください。私はstartを使用すると、バッチファイルを並列(新しいcmdウィンドウ)で実行しますが、それぞれから終了コードを返しません。コールを使用している間は、終了コードを取得できますが、バッチファイルの実行は順次発生します。私は、次のコードを持っている:これは、並行して別の変数でexec_pmcmd_ctrm.batを3回実行並列でバッチファイルを実行し、それぞれから終了コードを取得
ECHO ON
setlocal EnableDelayedExpansion
sqlcmd -S server_name -E -i select_code.sql >\path\output.txt
for /f "skip=2 tokens=1-3 delims= " %%a in ('findstr /v /c:"-" \path\output.txt') do (
echo $$src=%%a>\path1\%%c.prm
echo $$trg=%%b>>\path1\%%c.prm
set param_name=%%c
start cmd \k \path\exec_pmcmd_ctrm.bat workflow_name %%param_name%%
ping 1.1.1.1 -n 1 -w 5000 > nul
set exitcode="%V_EXITCODE%"
echo %exitcode%>>\path\exitcode.txt
)
を、私は、各実行から終了コードを取得することができません。私はコールを使用しようとしたが、その後、私はバットファイルの並列実行が欠場しています。この点に関する助け?
終了コードを収集する別の方法が必要です。 startを使用してプログラムを非同期に実行すると、終了コードを受け取る単一のポイントはありません。私は、Frank P. WestlakeがNamedPipes/MailSlotsで書いたツールを覚えている。それは無料でしたが、まだダウンロード可能かどうかわかりません。 [msdn:Mailslotsについて](https://msdn.microsoft.com/de-de/library/windows/desktop/aa365130(v = vs.85).aspx) – LotPings
「%V_EXITCODE%」はどこでしたか? –