Получить STDOUT в переменную - PullRequest
6 голосов
/ 09 января 2010

Я использую sendemail в командном файле. В конце отправки сообщения электронной почты он отвечает сообщением об успехе или неудаче. Например

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

Можно ли записать это сообщение в переменную для обработки?

Thx

Ответы [ 2 ]

11 голосов
/ 13 января 2010

Да, вам нужно выполнить sendmail через цикл for:

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
    )
)
0 голосов
/ 09 января 2010

обычно, вы просто используете цикл for для захвата вывода. см. здесь примечания 4. (и поиск в Интернете для более)

...