


Помогите с батником
Батник будет распологаться как на серверах, так и на локальных компьютерах. и в пути до него могут быть и русские буквы и пробелы. Должен быть универсальный код. Полный пути использовать нельзя - только относительно расположения самого батника. Вот часть кода. Работает на локальной машине даже если есть пробелы в пути. Но на сервере при запуске ошибку выдает "cmd.exe не поддерживает пути в качестве текущей папки".
SET BLAT="AdditionalComponents\Blat321\full\blat.exe"
SET WINRAR="AdditionalComponents\WinRar_portable\WinRAR32\App\WinRAR\Rar.exe"
cd "%~dp0"
::Формируем тело письма
type "RECEIVE\LAST_REC.TXT" > "mail.txt"
::Создаем архив из USR-файлов
"%WINRAR%" a -ep -agYYYY-MM-DD -w"" "usr.rar" "RECEIVE\*.USR"
::Добавляем комментарий к архиву, отправляем письмо и удаляем архив
"%BLAT%" -bodyF "mail.txt" -to usr.inelt@mail.ru -server smtp.mail.ru -port 25 -f usr.inelt@mail.ru -subject "%date%" -attach "*.rar" -charset windows-1251 -u name@mail.ru -pw password
DEL /f /q "*.rar"
::Удаляем временный файл тела письма
DEL /f /q "mail.txt"
не предлагайте править реестр. не везде это будет возможно
какую именно строчку? у меня и так вроде всё в кавычки заключено
Проблема вот:
cd "%~dp0"
cd не поддерживает переходы по сетевым папкам. Более того мало сменить текущую папку - надо сменить ещё текущий диск.
н-р попробуйте - пусть cmd лежит на диске C: и у Вас есть диск D:
@echo off
c:
cd \
cd d:\
echo test >> test.txt
Угадайте где будет создан test.txt? ;)
*Ответ: на диске C: в корне (если права на запись в корень имеете =)
Или исправляйте все пути в cmd с добавлением %~dp0 или можно подключить сетевую папку как диск с помощью net use н-р, то может, относительно этого диска.
если в пути есть пробелы, то строку нужно в кавычки заключать