Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
604 views
in Technique[技术] by (71.8m points)

batch file - Get STDOUT into a variable

Im using sendemail in a batch file. At the end of sending an email it replys with a message of succses or failure. For example

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

Is it possible to capture this message into a variable for processing?

Thx

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Yes, you need to execute sendmail through the for loop:

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

After this runs, VAR will be set to the last line that sendmail output. You can then do processing on that line

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
    )
)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...