Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Преобразовать *.html в *.mht

Ответить
Настройки темы
CMD/BAT - [решено] Преобразовать *.html в *.mht

Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491


Конфигурация

Профиль | Отправить PM | Цитировать


Имеется файл Help.html и папка misc к нему, нужно преобразовать их в файл Help.mht. Можно ли это сделать из бат файла? Доп. утилиты допустимы.

Отправлено: 16:55, 21-11-2009

 

Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Дальнейшие эксперименты с VBS-скриптом показали, что он может конвертировать интернет страницу, но не готовый файл...

Отправлено: 11:10, 03-04-2013 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата AlexLev:
Я попробовал VBS-скрипт, но он у меня не заработал, наверно надо ставить ADO? »
Есть подозрение, что у Вас нет CDO: Download Collaboration Data Objects, version 1.2.1 from Official Microsoft Download Center.

Цитата AlexLev:
Дальнейшие эксперименты с VBS-скриптом показали, что он может конвертировать интернет страницу, но не готовый файл... »
Это как?

Поправил ссылку в сообщении, дабы она указывала на новый, правильный, домен.

Отправлено: 15:57, 03-04-2013 | #12


Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, я попробовал установить Download Collaboration Data Objects; но при попытке установки вывелась ошибка "Collaboration Data Objects 1.2.1 cannot be installed unless Microsoft Office Outlook 2007 is also installed.".
Надо сказать, что на компьютере стоит Windows XP и Microsoft Office 2003.

По поводу экспериментов, - модифицированный код скрипта (фрагмент, выделение типа PHP для наглядности):
PHP код: Выделить весь код

objMsg.CreateMHTMLBody "http://www.yandex.ru"
objMsg
.DataSource.SaveToObject objAdo"_Stream"
objAdo.SaveToFile "2222.mht"

// работает


PHP код: Выделить весь код

objMsg.CreateMHTMLBody "1111.html"
objMsg
.DataSource.SaveToObject objAdo"_Stream"
objAdo.SaveToFile "2222.mht"

// НЕ работает

Отправлено: 09:05, 04-04-2013 | #13


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата AlexLev:
Надо сказать, что на компьютере стоит … Microsoft Office 2003. »
Тогда библиотека CDO у Вас есть.

AlexLev, упакуйте в архив и выкладывайте «1111.html» сюда.

Отправлено: 17:13, 04-04-2013 | #14


Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вот сделал, только с другого компьютера: Windows 7, Microsoft Office 2003.

Код: Выделить весь код
Ошибка: Указанный протокол неизвестен.
Код: 800C000D
Источник:	CDO.Message!
ругается на строку
Код: Выделить весь код
objMsg.CreateMHTMLBody "1111.html", 0
Ссылка на файл вложения:
http://yadi.sk/d/JGTqFtay3nlW0

По ходу вопрос: Почему-то этот файл не удалось подключить через систему сайта, ошибка "Превышает выделенный вам объем вложений на 964.3 Kb.". Хотя для ZIP указан лимит 8 МБ...

Отправлено: 23:08, 04-04-2013 | #15


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


AlexLev, никаких проблем:
Код: Выделить весь код
Option Explicit

Const cdoSuppressNone        =  0 ' загружать все
Const cdoSuppressImages      =  1 ' не загружать картинки
Const cdoSuppressBGSounds    =  2 ' не загружать фоновые звуки
Const cdoSuppressFrames      =  4 ' не загружать фреймы
Const cdoSuppressObjects     =  8 ' не загружать объекты
Const cdoSuppressStyleSheets = 16 ' не загружать таблицы стилей
Const cdoSuppressAll         = 31 ' не загружать ничего из вышеперечисленного


With WScript.CreateObject("CDO.Message")
	.AutoGenerateTextBody = True
	.CreateMHTMLBody "file://E:\Песочница\0239\Вложение\1111.html", cdoSuppressNone
	.BodyPart.GetStream().SaveToFile "E:\Песочница\0239\Вложение\1111.mht", 2
End With

WScript.Quit 0
Результат…
Файл был создан:
Код: Выделить весь код
╔══════════════ E:\Песочница\0239\Вложение ════════╤═════╗
║и              Имя                │Размер│  Дата  │Время║
║⌂..                               │ Вверх│05.04.13│03:40║
║├1111_files                       │ Папка│04.04.13│22:24║
║ 1111                         html│150346│04.04.13│22:20║
║ 1111                          mht│3962 К│05.04.13│03:40║
║                                  │      │        │     ║

Отправлено: 03:42, 05-04-2013 | #16


Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, благодарю!
Сама логика скрипта мне очень нравится, возможности его настройки.
Но вот почему-то на моём компьютере оно не работает как хотелось бы (в данном случае я опять на Windows XP).
Результат загружается очень быстро, но без картинок! Размер файла разнится с Вашим.

Попутно может кто ответит на вопрос, почему Zip-файл не могу на сайт положить?...

Вложение 2

Отправлено: 08:17, 05-04-2013 | #17


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата AlexLev:
Результат загружается очень быстро, но без картинок! »
У меня аналогично: из {background:url(…)} изображения не сохраняются.

Отправлено: 18:08, 05-04-2013 | #18


Новый участник


Сообщения: 46
Благодарности: 0

Профиль | Отправить PM | Цитировать


Iska, я напомню, что 2-го числа на мой вопрос "... пробовал разные конвертеры из HTM в MHT, и все они не сохраняют картинки...", Вы ответили, что "... скриптами — второй и третий посты этой темы.".
Так что теперь получается, скрипты тоже не могут выполнить эту функцию?

Отправлено: 21:26, 05-04-2013 | #19


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


AlexLev, эта ошибка (несохранение изображения, указанного в стиле в качестве подложки) содержится в самой функции сохранения в *.mht средствами IE/CDO. Не думаю, что опробованные Вами конвертеры реализуют какую-то свою функцию сохранения. Потому такой вот результат.

Вам просто следовало переместить акцент, вместо:
Цитата AlexLev:
и все они не сохраняют картинки... »
сказать «они сохраняют не все изображения», тогда бы не возникло недопонимания.

Отправлено: 21:37, 05-04-2013 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Преобразовать *.html в *.mht

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] Неправильное отображение значков MHT-файлов в проводнике d_u Microsoft Windows Vista 24 17-02-2014 19:10
Разное - [решено] Как преобразовать динамический диск в базовый без удаления томов. xapon Microsoft Windows 2000/XP 3 08-05-2010 12:54
[решено] php|Преобразовать секунды в дату morgan1991 Вебмастеру 11 30-12-2009 00:14
[решено] Как преобразовать текстовую формулу в числовой результат malev AutoIt 2 18-09-2009 11:09
[решено] Javascript | преобразовать 1154112977 в нормальное число hasherfrog Вебмастеру 3 29-07-2006 01:14




 
Переход