Войти

Показать полную графическую версию : Чтение всего txt файла в переменную bat


binwatch@vk
08-09-2012, 17:46
Здравствуйте. Нужно прочитать ВЕСЬ файл txt в переменную bat.
Пробовал так
set /P file= < file.txt
и так
Set file=C:\file.txt
For /F "usebackq tokens=* delims=" %%i In ("%file%") Do Set body=%%i

Читает только первую строку.
Как прочитать в переменную все строки?

Заранее благодарен

Iska
08-09-2012, 18:21
binwatch@vk, какова Ваша конечная цель? Что предполагается делать с этой переменной?

binwatch@vk
08-09-2012, 18:43
отправлять в email сообщении в качестве тела письма

Iska
08-09-2012, 20:33
binwatch@vk, чем Вы планируете формировать и отправлять письма?

binwatch@vk
08-09-2012, 22:38
отправлять с помощью blat
а сам скрипт такой:
Chcp 1251
set /P smtpsender= < email.txt
set /P smtpuser= < login.txt
set /P smtppwd= < pass.txt
set /P subject= < thema.txt
Set file=mess.txt
For /F "usebackq tokens=* delims=" %%i In ("%file%") Do Set body=%%i
set /P mailto= < st.txt
blat.exe -to %mailto% -f "%smtpsender%" -port 587 -u %smtpuser% -pw %smtppwd% -subject %subject% -body %body%


mess.txt в этом файле и хранится текст сообщения

Iska
08-09-2012, 22:42
Чуть выше «-body»:
-bodyF <file> : file containing the message body
т.е., Вам вовсе не нужно:
…прочитать ВЕСЬ файл txt в переменную bat. »

binwatch@vk
08-09-2012, 22:56
Чуть выше «-body»:
Цитата blat.exe /?:
-bodyF <file> : file containing the message body
т.е., Вам вовсе не нужно:
Цитата binwatch@vk:
…прочитать ВЕСЬ файл txt в переменную bat. » »

А как по другому тогда сделать если не читать весь текст в переменную?
Текст сообщения занимает несколько строк.

Не могли бы вы написать в самом коде как надо сделать?

Iska
08-09-2012, 23:18
Попробуйте так (выделил что убрать, что добавить):
Chcp 1251
set /P smtpsender= < email.txt
set /P smtpuser= < login.txt
set /P smtppwd= < pass.txt
set /P subject= < thema.txt
Set file=mess.txt
For /F "usebackq tokens=* delims=" %%i In ("%file%") Do Set body=%%i
set /P mailto= < st.txt
blat.exe -to %mailto% -f "%smtpsender%" -port 587 -u %smtpuser% -pw %smtppwd% -subject %subject% -body %body% -bodyF %file%

binwatch@vk
08-09-2012, 23:22
Попробуйте так (выделил что убрать, что добавить):
Код:
Chcp 1251
set /P smtpsender= < email.txt
set /P smtpuser= < login.txt
set /P smtppwd= < pass.txt
set /P subject= < thema.txt
Set file=mess.txt
For /F "usebackq tokens=* delims=" %%i In ("%file%") Do Set body=%%i
set /P mailto= < st.txt
blat.exe -to %mailto% -f "%smtpsender%" -port 587 -u %smtpuser% -pw %smtppwd% -subject %subject% -body %body% -bodyF %file%»

Спасибо! Помогло.

А возможно ли через blat и используя этот же скрипт отправить html сообщение?
Если возможно то что нужно изменить?

Iska
09-09-2012, 00:17
Посмотрите: blat.exe html body - Поиск в Google (https://www.google.ru/search?q=blat.exe+html+body&hl=ru&newwindow=1&tbs=lr:lang_1ru&lr=lang_ru), что-то есть. Я этим вопросом не занимался.

binwatch@vk
09-09-2012, 18:57
Нашел . Нужно всего лишь дописать -html
Chcp 1251
set /P smtpsender= < email.txt
set /P smtpuser= < login.txt
set /P smtppwd= < pass.txt
set /P subject= < thema.txt
Set file=mess.txt
set /P mailto= < st.txt
blat.exe -to %mailto% -f "%smtpsender%" -port 587 -u %smtpuser% -pw %smtppwd% -subject %subject% -bodyF %file% -HTML




© OSzone.net 2001-2012