读取.bat文件中的mq队列错误

时间:2013-07-31 14:58:59

标签: batch-file ibm-mq

我正在使用amqsput将消息写入批处理文件中的队列。

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

代码工作正常。但是我想捕获错误并回显相应的响应消息。

Ex - 如果队列已满,mq将返回错误代码和消息。我想捕获消息和代码并将其打印在屏幕上。

errorlevel不捕获mq错误代码。

1 个答案:

答案 0 :(得分: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>&1将stderr重定向到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 . . .