2010-01-09 19 views
6

Im sử dụng sendemail trong một tập tin thực thi. Vào cuối gửi một email, nó trả lời với một tin nhắn của succses hoặc thất bại. Ví dụ:Nhận STDOUT vào một biến

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

Có thể ghi thông điệp này vào biến để xử lý không?

Thx

Trả lời

-1

thông thường, bạn chỉ cần sử dụng vòng lặp for để nắm bắt đầu ra. thấy here ghi chú 4. (và tìm kiếm Internet để biết thêm)

11

Có, bạn cần phải thực hiện sendmail qua vòng lặp for:

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

Sau này chạy, VAR sẽ được thiết lập để dòng cuối cùng mà sendmail đầu ra . Sau đó, bạn có thể xử lý trên dòng đó

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

Lưu ý với chính mình: bắt đầu tìm kiếm những thứ như vậy trên Stackoverflow thay vì google. –

+0

những gì về một dòng lệnh như 'strings% 1 -t d | grep -e "[0-9] \ {1,3 \}" '? (tihs có unxutils, nhưng có khả năng với các chương trình chỉ dành cho windows) – n611x007

Các vấn đề liên quan