Войти

Показать полную графическую версию : Открыть mht в Интернете


Страниц : [1] 2

truvo
11-12-2009, 01:28
Например, мне нужно отослать кому-то ссылку на интернет-страницу, сохраненную в виде mht-файла. Если открыть файл в браузере, в панели адреса указан его "местный адрес", со словами localhost. Чтобы узнать настоящий адрес страницы, я делаю так: перехожу с этой страницы по какой-то из ссылок на ней на другую, затем возвращаюсь обратно, и так получаю в панели адреса то, что мне нужно, т. е. искомую ссылку.

Возможно ли как-то иначе и проще выяснять настоящий адрес? Например, каким-то образом или через какую-то программу запускать mht в онлайн-режиме. Или как-то при сохранении страницы в виде вэб-архива копировать параллельно и ссылку?

Negativ
11-12-2009, 09:32
truvo,
Ваще ничего не понял

Michael
11-12-2009, 09:44
truvo, если эту тему сохранить в файл mht и посмотреть его не через браузер, а например в Total Commander (через F3) или в Word (в формате только текст)- на первом же экране будет строка вида

Content-Location: http://forum.oszone.net/thread-159838.html

которая собственно и является оригинальным адресом этой темы. Правда не знаю - всегда ли это работает, по крайне мере те mht файлы что нашел у себя на винте эту строку содержали и она была верная

truvo
11-12-2009, 17:35
Michael, у меня куча таких файлов, к сожалению, с TC ваш рецепт не прокатил, а вот если открыть в блокноте - тогда да, вижу ссылку. Пока что - это вариант решения вопроса. Спасибо.

Michael
11-12-2009, 20:20
truvo, а при нажатии F3 в Тotal Сommander у вас что запустилось? Lister с просмотром web-содержимого страницы? Если да, то надо в Lister'е выбрать "Опции -> Только текст" или сразу на клавиатуре нажать цифру 1 - тогда будет виден исходный код mht-файла

truvo
11-12-2009, 21:24
Michael, угу, понял. Но ведь тогда, насколько я понимаю, можно реализовать и задачу, поставленную мной в первом посте. То есть написать батник, который найдет в указанном файле (или, например, в mht-файлах, находящихся с ним в одной папке) ссылку (или ссылки) после слов Content-Location и откроет эти ссылки в браузере.

gora
12-12-2009, 13:56
написать какой-то батник, который найдет в указанном файле ... ссылку ... и откроет эти ссылки эту ссылку в браузере. »
Отредактировал цитату (опять расплывчатая постановка задачи, сколько файлов, в одной папке они лежат или нет, есть ли еще в папке(ах) файлы других типов и т.д.)
@Echo Off
Rem Путь файлу .mht
Set "mht_file=c:\musor\Новая папка\Открыть mht в Интернете.mht"

For /f "tokens=1*" %%a In ('FINDSTR /b /i "Content-Location:" "%mht_file%"') Do Set url=%%b& GoTo :_end
:_end
Rem Вывод url-а с которого сохранен файл
Echo %url%
Rem Открыть url в онлайн режиме
Start "" "%url%"
Pause >Nul

truvo
12-12-2009, 22:07
gora, взял в качестве испытуемого файл с именем

Автоматическая очистка папки для временных файлов _ Polymorph.mht

Ваш батник не сработал. Когда переименовал файл в 1.mht - сработал. Подскажите, что не так.

gora
12-12-2009, 22:09
Батник должен быть в кодировке кириллица DOS (866).

truvo
12-12-2009, 22:31
gora, забыл про кириллицу - спасибо, всё отлично работает.

опять расплывчатая постановка задачи, сколько файлов, в одной папке они лежат или нет, есть ли еще в папке(ах) файлы других типов »gora, ну почему же расплывчатая? Вполне конкретная задача. Я же указал, что находящихся с ним в одной папке », значит, ваш вопрос про местонахождение отпадает. С другой стороны, я предоставил свободу творчества - можно было решать задачу как для одного файла, так и, по желанию, для всех mht-файлов, содержащихся в папке. Понятно, что во втором случае, при "универсальном" решении, как, впрочем, и в случае с одним только файлом, нет необходимости указывать в батнике определенное имя обрабатываемого объекта, а можно, наверное, задать поиск всех файлов c таким расширением в текущей (или указанной) папке, затем последовательный перебор этих файлов с совершением указанных вами действий: то есть найти первый файл, извлечь ссылку, открыть, перейти к следующему файлу, извлечь-открыть и т. д. Разумеется, такая пакетная обработка будет иметь смысл только в том случае, если каждая новая ссылка будет открываться в новой вкладке браузера).

Ну а поскольку ищутся файлы с определенным расширением, то ваш вопрос про наличие файлов других типов тоже вроде бы не имеет смысла.

gora
12-12-2009, 22:57
truvo
1 Наличие файлов только одного типа в папке упрощает задачу.
2 То, что они в одной папке не означает, что в ней не может быть вложенных папок с такими же файлами и не исключает, что Вам их тоже нужно будет обрабатывать, а формально они лежат в той же папке!
3 Какое число файлов? А если их 20, 50, 100? Представляете что будет при попытке открыть 100 файлов одновременно?
4 Батник будет извлекать ссылки очень быстро и сразу их запускать без задержки и сможет запустить 100 ссылок менее чем за секунду. Скорость вашего интернета позволит одновременно открывать хотя бы 10...20 страниц и не потребуется ли Вам, в этом случае, задержка на запуск следующей страницы после полной загрузки предыдущей?
5 Какова цель такого массового открытия страниц, ведь все их Вы одновременно читать не сможете?

Это только часть вопросов, возникающих при прочтении вашей постановки задачи.
Четкая постановка задачи - половина ее решения. ИМХО.

truvo
13-12-2009, 00:33
gora, я с вашего позволения ещё маленько поразглагольствую. Если бы вложенные папки подразумевались, я бы четко это обозначил. Раз не написал - то подразумевал, что их нет. Хотя предусмотреть наличие влож. папок составителю батника не так уж и трудно... А ваши вопросы о количестве файлов, о скорости Интернета, и тем более о том, на фига это нужно, на мой взгляд, вообще не имеют отношения к условиям задачи. Потому что:

1) здесь важно одно, что файлов может быть некоторое количество, то есть не один.

2) разве я заказываю батник под свой канал Интернета, под свой комп? Речь об универсальном решении, а потянет или не потянет чей-то комп - это уже вопрос последствий применения в частном случае, при чем тут начальные условия? Разработчики фотошопа, по-моему, решали вопросы обработки изображений, не особенно заморачиваясь над тем, какая оперативка окажется у Васи, Пети и т. д.

В общем, gora, на будущее я понял, что задачу для таких людей, как вы, нужно формулировать как можно более узко, чтоб без вариантов. Тогда попробую уконкретить и усложнить заодно. Вы правы, читать сто страниц одновременно я не собираюсь, ибо пока ещё не свихнулся... Вот если бы ваш батник, который вы придумали, да облечь в графическую оболочку, чтобы там обзором можно было найти mht-файл и нажать на кнопочку "Открыть в Интернете" - это было бы вообще "шоколадно".

gora
13-12-2009, 00:56
truvo, не надо обижаться. Вам нужно решение, а я лишь хочу Вам помочь, но не совсем понимаю задачу (люблю четкость). Вы ее в очередной раз меняете, уже не надо запускать все разом, а нужен некий графический выбор. GUI под нее вряд ли кто будет писать, но могу предложить как вариант использовать ТС. Можно немного подправить батник и сделать для него кнопку на панели ТС. Запускать .mht файл в онлайн режиме в этом случае можно будет двумя способами:
1 Установить курсор на нужный файл и кликнуть по кнопке
2 Перетащить нужный файл на кнопку

ТС для работы с файлами гораздо удобнее любых кнопок Обзор.

Такой вариант устроит?

truvo
13-12-2009, 02:27
truvo, не надо обижаться »Даже не собирался...Вы ее в очередной раз меняете »Просто вы задачу в принципе решили, и я пошел развивать дальше...Такой вариант устроит? »Абсолютно! Я без TC в винде не работаю.

gora
13-12-2009, 18:33
Такой вариант устроит? »
Абсолютно! »
Файл url_ext.bat :@Echo Off
Set "mht_file=%~1"
If Not Defined mht_file Call :_Err "Нет ни какого файла"
For %%i In (%mht_file%) Do Set ext=%%~xi
If Not "%ext%"==".mht" Call :_Err "'%~1' не *.mht файл"
For /f "tokens=1*" %%a In ('FINDSTR /b /i "Content-Location:" "%mht_file%"') Do Set url=%%b& GoTo :_end
:_end
Set Burl=%url:~0,5%
If Not "%Burl%"=="http:" Call :_Err "Файл '%~1' не содержит URL"
Start "" "%url%"
Exit

:_Err
Title Ошибка запуска *.mht файла
Echo.
Echo ОШИБКА!!!
Echo.
Echo %~1
Pause >Nul
Exit Код кнопки в ТС:TOTALCMD#BAR#DATA
%commander_path%\Utilites\url_ext.bat
%P%N
%commander_path%\TOTALCMD.EXE,33
Запуск *.mht файла в онлайн режиме
%commander_path%\Utilites\

-1

Файл url_ext.bat положил в папку %commander_path%\Utilites\, можно и в любую другую, откорректировав пути к нему в коде кнопки. Как вставить код кнопки на панель ТС можно глянуть здесь (http://buttontc.7zsfx.info#problem).

Запускать можно как и писал выше.Запускать .mht файл в онлайн режиме в этом случае можно будет двумя способами:
1 Установить курсор на нужный файл и кликнуть по кнопке
2 Перетащить нужный файл на кнопку

truvo
13-12-2009, 23:15
gora, замечание: в тексте батника слово "никакого" должно быть написано вместе.

В последней вашей редакции батник тоже должен быть в кодировке 866 или не обязательно?

gora, проверил - работает, но вот, например, MHT-файл, в котором содержится такая ссылка (действующая):

http://h10025.www1.hp.com/ewfrf/wc/document?docname=c01457284&lc=en&cc=us&product=390426&dlc=en

В этом случае кнопка не работает и сообщений никаких не выдала.

gora
14-12-2009, 00:14
батник тоже должен быть в кодировке 866 »
Обязательно, если в именах файлов будет кириллица.
но вот, например, MHT-файл, в котором содержится такая ссылка »
Сохранил файл с указанной ссылки. Имя файла:Computer Restarts after Displaying Stop Error 0x0000007E (After Updating with Service Pack 3 for Windows XP) Compaq Presario S6300NX Desktop PC - HP Customer Care (United States - English).mht переименовал его в 2.mht и кнопка сработала.
Т.к. имена передаются в батник и обрабатываются в нем, то они не должны содержать спец. символов. В данном случае это кавычки скобки да еще и встречающиеся дважды. Переименовывайте такие страницы при сохранении или позже иначе батник их не обработает.
Сделать батник, который бы обрабатывал ВСЕ спец. символы, по моему, нельзя. Сигналом к переименованию .mht файла с "запрещенным" именем может быть как раз отсутствие должной реакции на него батника. По другому сделать я не умею.

truvo
14-12-2009, 00:25
gora, кавычек там нет. Вы имели в виду скобки?

А сделать так, чтобы батник переваривал и спецсимволы, - нельзя?

Или, быть может, стоит добавить что-то в текст батника и на этот случай, чтобы при наличии спецсимволов в имени предлагалось переименовать файл?

gora
25-12-2009, 08:20
Т.к. имена передаются в батник и обрабатываются в нем, то они не должны содержать спец. символов. ... Сделать батник, который бы обрабатывал ВСЕ спец. символы, по моему, нельзя. ... По другому сделать я не умею. »
Переименовывайте такие страницы при сохранении или позже иначе батник их не обработает. ... Сигналом к переименованию .mht файла с "запрещенным" именем может быть как раз отсутствие должной реакции на него батника. »
редактировалось gora, 14-12-2009 в 08:28. Причина: исправил очепятку и дополнил »

angry_dog
30-09-2010, 17:32
Уважаемый gora, долго искал подобное решение, Ваше потрясающее по простоте и эффективности.
Сделать батник, который бы обрабатывал ВСЕ спец. символы, по моему, нельзя
Имена файлов mht берутся из названий веб-страниц. Не нужно ВСЕ спец. символы, сделайте в батнике поддержку скобок () и [], ну для полного счастья ещё ковычек «». Именно они встречаются наиболее часто. Спасибо Вам большое за труд.




© OSzone.net 2001-2012