2010-01-09 15 views
6

Im przy użyciu sendemail w pliku wsadowym. Pod koniec wysyłania wiadomości e-mail odpowiada wiadomością o sukcesie lub niepowodzeniu. Na przykład:Pobierz STDOUT do zmiennej

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

Czy można przechwycić tę wiadomość do zmiennej w celu przetworzenia?

Thx

Odpowiedz

-1

Zazwyczaj po prostu używasz pętli for do przechwytywania danych wyjściowych. zobacz here notatki 4. (a wyszukiwarka internetowa dla bardziej)

11

Tak, trzeba wykonać sendmail przez pętli for:

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

Po to działa, VAR będzie ustawiany na ostatnią linię, która Sendmail wyjście . Możesz następnie wykonać przetwarzanie na tej linii:

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

Uwaga dla siebie: zacznij szukać takich rzeczy na Stackoverflow zamiast google. –

+0

co z wierszem polecenia, takim jak 'string% 1 -t d | grep -e "[0-9] \ {1,3 \}" '? (tihs jeden z unxutils, ale potencjalnie z programami tylko do Windows) – n611x007