我正在使用 amqsput 将消息写入批处理文件中的队列。
call "C:\folderdir\code\mqfile\amqsput" QUEUE QMGR < File
代码工作正常。但是我想捕获错误并回显适当的响应消息。
Ex - 如果队列已满,mq 将返回错误代码和消息。我想捕获消息和代码并将其打印在屏幕上。
errorlevel 不捕获 mq 错误代码。
我正在使用 amqsput 将消息写入批处理文件中的队列。
call "C:\folderdir\code\mqfile\amqsput" QUEUE QMGR < File
代码工作正常。但是我想捕获错误并回显适当的响应消息。
Ex - 如果队列已满,mq 将返回错误代码和消息。我想捕获消息和代码并将其打印在屏幕上。
errorlevel 不捕获 mq 错误代码。
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
正在将标准错误重定向到标准输出,并且for /f
循环正在捕获标准输出。
测试.bat
@echo off
for /f "delims=" %%A in ('call Test2.bat ^< Test.txt 2^>^&1') do echo(Test = %%A
pause
exit /b 0
测试2.bat
@echo off
set /p "Test="
echo(%Test%
echo Error 1>&2
exit /b 0
测试.txt
Hello
输出
C:\Users\User\Desktop>Test.bat
Test = Hello
Test = Error
Press any key to continue . . .