CMD/BAT - Проблема с кодировкой при отправке почты

Ответить
Аватара пользователя
V!RTuE

CMD/BAT - Проблема с кодировкой при отправке почты

Сообщение V!RTuE »

Ситуация следующая. Есть батник с кучей кода. В конце работы батника создается скрипт для отправки почты (sendmail.vbs) Создается подобным образом:



Код:

Код: Выделить всё

...
SET f=%~dp0
echo strEmail = "%MAILFROM%">>"%f%ARCHIVE\Sendmail.vbs"
...

далее идет запуск скрипта:



Код:

Код: Выделить всё

cscript "%f%ARCHIVE\Sendmail.vbs"

Так вот при запуске батника на почту приходит письмо с файлами и в самом письме (тема, от кого, текст сообщения) вместо русских букв отображаются вопросы. Но если же запускаю этот же созданный батником скрипт сам, то текст отображается нормально. Батник этот работает на нескольких десятках компьютеров нормально (различные версии windows с разными конфигурациями), кроме 2 компьютеров. Один из них Microsoft Windows Server 2003 (x32) английская версия и еще один Windows 7 Home Basic (x32) (вроде тоже английская версия. но точно не помню). Сам батник в кодировке windows-1251.

Вот от чего может зависеть? как влияет кодировка, если запускаю скрипт из батника и если запускаю его сам?
Аватара пользователя
Foreigner

Re: CMD/BAT - Проблема с кодировкой при отправке почты

Сообщение Foreigner »

Цитата V!RTuE:



Сам батник в кодировке windows-1251
CMD/BAT - Проблема с кодировкой при отправке почты




chcp в батнике прописан, chcp 1251?
Аватара пользователя
V!RTuE

Re: CMD/BAT - Проблема с кодировкой при отправке почты

Сообщение V!RTuE »

Цитата Foreigner:



chcp в батнике прописан, chcp 1251?
CMD/BAT - Проблема с кодировкой при отправке почты




Прописано так:



Код:

Код: Выделить всё

chcp 1251>nul 2>&1

Не знаю почему именно так, но кто-то давно еще мне советовал так записывать. Может напомните как расшифровать это? и есть разница как записывать?
Аватара пользователя
Iska

Re: CMD/BAT - Проблема с кодировкой при отправке почты

Сообщение Iska »

Цитата V!RTuE:



Может напомните как расшифровать это?
CMD/BAT - Проблема с кодировкой при отправке почты




Перенаправить поток вывода («stdout») команды на пустое устройство, перенаправить поток ошибок («stderr») в поток вывода (т.е., фактически поток ошибок тоже пойдёт на пустое устройство).
Ответить

Вернуться в «Скриптовые языки администрирования Windows»