Остановка цикла. Отправка почты через Blat
Всем привет. столкнулся с проблемой. Помогите, если можете.
Понадобился скрипт, который будет проверять маршруты на сервере и отправлять на почту сообщение внутри которого будет маршрут и тема письма будет взята из маршрута.
Код:
for /f "tokens=3-4" %%a in ('route print ^| find " 0.0.0.0"') do blat - -to user1@tut.by -server 192.168.33.200 -f user2@tut.by -u user2@tut.by -pw user2 -subject "%%a - %%b" -body "%%a - %%b"
Проблема в том, что данный скрипт отправляет несколько писем, если находит больше одного маршрута с " 0.0.0.0". А нужно, что бы присылалось только одно письмо со всеми маршрутами в теле и первым маршрутом в теме письма. Либо вообще цикл заканчивался после первого найденного маршрута и отправлял письмо с первым найденным маршрутом.
Буду благодарен за ваши советы и помощь.
|
Цитата:
Цитата s.i.p.a
нужно, что бы присылалось только одно письмо со всеми маршрутами в теле и первым маршрутом в теме письма. »
|
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
(
for /f "usebackq tokens=3-4" %%i in (
`route.exe print ^| find.exe " 0.0.0.0"`
) do (
if not defined sSubject set sSubject=%%i - %%j
echo %%i - %%j
)
) | blat.exe - -to user1@tut.by -server 192.168.33.200 -f user2@tut.by -u user2@tut.by -pw user2 -subject "%sSubject%"
endlocal
exit /b 0
Цитата:
Цитата s.i.p.a
Либо вообще цикл заканчивался после первого найденного маршрута и отправлял письмо с первым найденным маршрутом. »
|
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq tokens=3-4" %%i in (
`route.exe print ^| find.exe " 0.0.0.0"`
) do (
blat.exe - -to user1@tut.by -server 192.168.33.200 -f user2@tut.by -u user2@tut.by -pw user2 -subject "%%i - %%j" -body "%%i - %%j"
goto :Out
)
:Out
endlocal
exit /b 0
Не проверялось.
В первом коде вывод от разбора фильтрации группируется и передаётся по конвейеру на stdin blat.exe (посему параметр -body не используется), тема письма формируется из первой отфильтрованной строки разбора.
Во втором коде тупо происходит выход за пределы цикла разбора после первого прохода.
|
Iska, второй скрипт вроде рабочий. Первый, к сожалению, вообще не запускается. Батник сразу закрывается. Завтра проверю, когда будет доступ к серверу почты. ПОка огромное спасибо и на этом.
|
Цитата:
Цитата s.i.p.a
Первый, к сожалению, вообще не запускается. Батник сразу закрывается. »
|
Запускается. Но отрабатывает ошибку. Посмотрю, подумаю, вспомню, что можно попытаться сделать. В крайнем случае можно будет тупо использовать временный файл.
|
Время: 13:57.
© OSzone.net 2001-