Показать полную графическую версию : Чтение всего 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
Читает только первую строку.
Как прочитать в переменную все строки?
Заранее благодарен
binwatch@vk, какова Ваша конечная цель? Что предполагается делать с этой переменной?
binwatch@vk
08-09-2012, 18:43
отправлять в email сообщении в качестве тела письма
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 в этом файле и хранится текст сообщения
Чуть выше «-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. » »
А как по другому тогда сделать если не читать весь текст в переменную?
Текст сообщения занимает несколько строк.
Не могли бы вы написать в самом коде как надо сделать?
Попробуйте так (выделил что убрать, что добавить):
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 сообщение?
Если возможно то что нужно изменить?
Посмотрите: 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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.