将STDOUT转换为变量

时间:2010-01-09 12:28:21

标签: batch-file email-integration dos

我在批处理文件中使用sendemail。在发送电子邮件结束时,它会回复一个简短或失败的消息。例如

Jan 10 00:46:54 villa sendemail[456]: Email was sent successfully!

是否可以将此消息捕获到变量中进行处理?

THX

2 个答案:

答案 0 :(得分:11)

是的,您需要通过for循环执行sendmail:

for /f "tokens=*" %%a in ('[sendmail command line]') do (
    set VAR=%%a
)

此次运行后,VAR将设置为sendmail输出的最后一行。然后,您可以在该行上进行处理

for /f "tokens=5,* delims= " %%a in (%VAR%) do (
    if "%%b"=="Email was sent successfully!" (
        echo SUCCESS
        exit /b 0
    ) else (
        echo FAILURE
        exit /b 1
    )
)

答案 1 :(得分:-1)

通常,您只需使用for循环来捕获输出。请参阅here备注4.(并在互联网上搜索更多内容)