2010-01-09 8 views
6

Estoy usando sendemail en un archivo por lotes. Al final de enviar un correo electrónico responde con un mensaje de succes o error. Por ejemploObtenga STDOUT en una variable

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

¿Es posible capturar este mensaje en una variable para su procesamiento?

Thx

Respuesta

-1

Normalmente, solo utiliza el bucle for para capturar la salida. here ver notas 4. (e internet buscar más)

11

Sí, es necesario para ejecutar sendmail a través del bucle for:

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

Después de esto funciona, VAR se establecerá en la última línea que sendmail de salida . A continuación, puede hacer el procesamiento en esa línea

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

Aviso a mí mismo: comience a buscar tales cosas en Stackoverflow en lugar de google. –

+0

¿qué pasa con una línea de comando como 'cadenas% 1 -t d | grep -e "[0-9] \ {1,3 \}" '? (este es uno con unxutils, pero potencialmente con programas solo para Windows) – n611x007

Cuestiones relacionadas