0

amqsput を使用して、メッセージをバッチ ファイルのキューに書き込みます。

call "C:\folderdir\code\mqfile\amqsput" QUEUE QMGR < File

コードは正常に動作します。ただし、エラーをキャプチャして、適切な応答メッセージをエコーし​​たいと考えています。

例 - キューがいっぱいの場合、mq はエラー コードとメッセージを返します。メッセージとコードをキャプチャして画面に表示したい。

errorlevel は、mq エラー コードをキャプチャしません。

4

1 に答える 1

0

for /fループを使用して出力をキャプチャします。

@echo off
for /f "delims=" %%A in ('call "C:\folderdir\code\mqfile\amqsput" QUEUE QMGR ^< File 2^>^&1') do echo(%%A
pause

2>&1stderr を stdout にリダイレクトしており、for /fループが stdout をキャプチャしています。

例/概念実証

Test.bat

@echo off
for /f "delims=" %%A in ('call Test2.bat ^< Test.txt 2^>^&1') do echo(Test = %%A
pause
exit /b 0

Test2.bat

@echo off
set /p "Test="
echo(%Test%
echo Error 1>&2
exit /b 0

Test.txt

Hello

出力

C:\Users\User\Desktop>Test.bat
Test = Hello
Test = Error
Press any key to continue . . .
于 2013-07-31T16:05:23.730 に答える