Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Чтение всего txt файла в переменную bat (http://forum.oszone.net/showthread.php?t=242260)

binwatch@vk 08-09-2012 17:46 1985197

Чтение всего txt файла в переменную bat
 
Здравствуйте. Нужно прочитать ВЕСЬ файл 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 1985206

binwatch@vk, какова Ваша конечная цель? Что предполагается делать с этой переменной?

binwatch@vk 08-09-2012 18:43 1985214

отправлять в email сообщении в качестве тела письма

Iska 08-09-2012 20:33 1985257

binwatch@vk, чем Вы планируете формировать и отправлять письма?

binwatch@vk 08-09-2012 22:38 1985313

отправлять с помощью 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 1985318

Чуть выше «-body»:
Цитата:

Цитата blat.exe /?
-bodyF <file> : file containing the message body

т.е., Вам вовсе не нужно:
Цитата:

Цитата binwatch@vk
…прочитать ВЕСЬ файл txt в переменную bat. »


binwatch@vk 08-09-2012 22:56 1985323

Цитата:

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

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

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

Iska 08-09-2012 23:18 1985339

Попробуйте так (выделил что убрать, что добавить):
Код:

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 1985342

Цитата:

Цитата Iska
Попробуйте так (выделил что убрать, что добавить):
Код:
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 1985358

Посмотрите: blat.exe html body - Поиск в Google, что-то есть. Я этим вопросом не занимался.

binwatch@vk 09-09-2012 18:57 1985668

Нашел . Нужно всего лишь дописать -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



Время: 12:13.

Время: 12:13.
© OSzone.net 2001-