2010-01-09 3 views
6

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

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

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

Thx

ответ

-1

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

11

Да, вы должны выполнить Sendmail через цикл:

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

После этого запускается, вар будет установлен в последнюю строку, что 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 
    ) 
) 
+3

Обратите внимание на себя: начните искать такие вещи в Stackoverflow вместо google. –

+0

как насчет командной строки типа 'strings% 1 -t d | grep -e "[0-9] \ {1,3 \}" '? (tihs один с unxutils, но потенциально с программами только для окон) – n611x007