我正在使用amqsput将消息写入批处理文件中的队列。
call "C:\folderdir\code\mqfile\amqsput" QUEUE QMGR < File
代码工作正常。但是我想捕获错误并回显相应的响应消息。
Ex - 如果队列已满,mq将返回错误代码和消息。我想捕获消息和代码并将其打印在屏幕上。
errorlevel不捕获mq错误代码。
答案 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 . . .