вторник, 10 сентября 2013 г.

Я не программист

Я тут в последние дни периодически, когда есть время, вожусь со скриптиком, который будет мне делать архив базы данных и радостно уведомлять о выполненной работе по электронной почте. Вот как раз с этим почему-то и не получалось. Вообще у меня такой скрипт регулярно, по пятницам, рассылает смешные письма. То есть проверен неоднократно. Но это на моём компьютере. А вот на сервере почему-то пишет "ошибка синтаксиса". И вместо того, чтобы "развернуть" переменную %%f в адрес электронной почты, так и оставляет %f. Вот он, этот злосчастный кусок кода:


@echo off
setlocal
set blat=D:\Temp\blat307\full\blat.exe
set log=D:\path\to\Programs\blat307\files\log.txt
set list=D:\path\to\Programs\blat307\files\maillist.txt
set smtpsender=username@yandex.ru
set smtpserver=smtp.yandex.ru
set smtpport=25
set smtpuser=username@yandex.ru
set smtppwd=password
set subj=D:\path\to\Programs\blat307\files\subj.txt
set msg=D:\path\to\Programs\blat307\files\msg.txt
set logfile=D:\path\to\Programs\blat307\log\blat_log.txt
set codepage=Windows-1251

for /f %%f in ('type %list%') do (

%blat% -to %%f -f %smtpsender% -server %smtpserver% -port %smtpport% -u %smtpuser% -pw %smtppwd% -log %logfile% -charset %codepage% -sf %subj% -bodyF %msg% >> %log%
)

:END


Ошибка была в ДНК, как обычно :-)
Не надо было в конце дописывать >> %log%! И вот из-за этой, стандартной, в общем-то, процедуры перенаправления вывода, весь сыр-бор. Кто ж знал-то. Ну да, в оригинале её не было, зачем-то дописал, хотя там и так есть ключ, указывающий на запись в лог.

Комментариев нет :

Отправить комментарий