Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Остановка цикла. Отправка почты через Blat

Ответить
Настройки темы
CMD/BAT - [решено] Остановка цикла. Отправка почты через Blat

Старожил


Сообщения: 157
Благодарности: 2

Профиль | Отправить PM | Цитировать


Всем привет. столкнулся с проблемой. Помогите, если можете.

Понадобился скрипт, который будет проверять маршруты на сервере и отправлять на почту сообщение внутри которого будет маршрут и тема письма будет взята из маршрута.

Код: Выделить весь код
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". А нужно, что бы присылалось только одно письмо со всеми маршрутами в теле и первым маршрутом в теме письма. Либо вообще цикл заканчивался после первого найденного маршрута и отправлял письмо с первым найденным маршрутом.

Буду благодарен за ваши советы и помощь.

Отправлено: 21:49, 10-04-2018

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата 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 не используется), тема письма формируется из первой отфильтрованной строки разбора.

Во втором коде тупо происходит выход за пределы цикла разбора после первого прохода.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:55, 10-04-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 157
Благодарности: 2

Профиль | Отправить PM | Цитировать


Iska, второй скрипт вроде рабочий. Первый, к сожалению, вообще не запускается. Батник сразу закрывается. Завтра проверю, когда будет доступ к серверу почты. ПОка огромное спасибо и на этом.

Отправлено: 20:13, 11-04-2018 | #3


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата s.i.p.a:
Первый, к сожалению, вообще не запускается. Батник сразу закрывается. »
Запускается. Но отрабатывает ошибку. Посмотрю, подумаю, вспомню, что можно попытаться сделать. В крайнем случае можно будет тупо использовать временный файл.

Отправлено: 01:31, 12-04-2018 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Остановка цикла. Отправка почты через Blat

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - [решено] Отправка почты через PowerShell Pavelnt Скриптовые языки администрирования Windows 6 17-08-2019 12:05
CMD/BAT - blat.exe отправка почты через ком.строку weranc Скриптовые языки администрирования Windows 3 29-05-2013 14:20
CMD/BAT - Удаление непарных файлов в увеличением в фильтре и отправка по почте через Blat NemoSUN Скриптовые языки администрирования Windows 10 29-05-2013 14:17
Интернет - Отправка почты через командную строку Freezet Microsoft Windows 2000/XP 10 18-09-2008 11:31
Отправка почты через дос команды BigDim Microsoft Windows NT/2000/2003 2 07-07-2006 10:40




 
Переход