Извлечение ссылок из ярлыков интернета

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Ответить
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Извлечение ссылок из ярлыков интернета

Сообщение shveicar »

Здравствуйте На днях столкнулся с такой проблемой скачал архив а в нем вместо файлов пакеты с интернет ярлыками их более 600 шт. Попытался извлечь ссылки textpipe так он (почему-то) половину пропускает (хотя с html файлами работает исправно) total commander при наведении на я hksr курсора ссылку показывает, но каждый раз открывать каждый ярлык с ума можно сойти.
Хотелось бы каким нибудь способом извлечь все ссылки из ярлыков ну а дальше загнать их в любую качалку и немного подождать. Если кто сталкивался с подобной проблемой - пожалуйста дайте совет. Спасибо.
P.s поиском пользовался похожей темы не нашел.

[mod="Avada"]Тема перенесена в "Автоматизацию", где смотрится более уместно.[/mod]
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

[=shelldetails.URL-адрес] > cm_SaveDetailsToFile
Дальше регекспы в помощь. Например, можно использовать этот скрипт с такими параметрами:
"([:.\\\w^ \t]+)http" "http" %L
Либо WdxInfoPaсker для создания списка из выделенных файлов (с рекурсией). Просто у меня он крэшиться и лагает, поэтому насчёт него не уверен.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Как вариант, можно использовать батник:

Код: Выделить всё

@echo off
if -%1==-go goto go
if -%2==- echo Params: "%%WL" "C:\WhereToSaveLinks.txt" & pause & goto :EOF
if exist %2 del %2
for /f "usebackq delims=" %%f in (`type %1`) do type "%%f"|find /i "URL=">>%2
pause
Перетащить на панель инструментов, дописать в параметрах "%%WL" "C:\WhereToSaveLinks.txt". Затем выделить файлы .URL, нажать кнопку - и в указанный текстовый файл будут выписаны все строки из ярлыков, начинающиеся с URL=. Затем в текстовом редакторе поиском и заменой удалить все URL=, и останутся чистые ссылки.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Упрощаю:

Код: Выделить всё

' Добавление ссылок в файл-список из выделенных url
' Параметры: %L "<путь к файлу-списку>"
' Пример: %L "%TСсылки.txt"
'=====================================
With CreateObject("Scripting.FileSystemObject")
Set TempFile = .OpenTextFile(WScript.Arguments(0),1)
On Error Resume Next
Do While Not TempFile.AtEndOfStream
  URLFile = .OpenTextFile(TempFile.ReadLine).ReadAll
  Str=Filter(Split(URLFile, vbNewLine), "URL=", true, 1)
  Set List = .OpenTextFile(WScript.Arguments(1),8,True)
  List.WriteLine Mid(Str(0), 5)
  List.Close
  URLFile.Close
Loop
TempFile.Close
End With
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Большое спасибо. Последний скрипт работает как надо.
А что за параметры во втором скрипте

Код: Выделить всё

[=shelldetails.URL-адрес] > cm_SaveDetailsToFile
куда их нужно добавлять? плагин shelldetails у меня установлен.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Я не понял вопроса. Параметры идут далее и выделены жирным. Надо рассказывать, куда вставляются параметры в кнопке? А приведённая строка (почему-то в виде кода) никакого отношения к параметрам не имеет. Тем, кто пользуется колонками инфоплагинов, должно быть известно, как выглядят данные в полях. Это касается и внутренних команд ТС. Матчасть.
Только я забыл перед cm_SaveDetailsToFile указать на выполнение cm_SelectCurrentExtension.
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Спасибо я разобрался
Аватара пользователя
Моторокер
Сообщения: 1517
Зарегистрирован: Пт май 06, 2005 08:22
Откуда: г. Пермь (читается Перьмь)
Контактная информация:

Сообщение Моторокер »

Как вариант, объединить файлы Тоталом в один, отсортировать полученный файл, ссылки пойдут по порядку.
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

shveicar
Вариант попроще и побыстрее:

Код: Выделить всё

' Добавление ссылок/строк в файл-список из выделенных url/htm(l)
' Параметры: %L "<путь к файлу-списку>"
' Пример: %L "%TСсылки.txt"
'=====================================
With CreateObject("Scripting.FileSystemObject")
  On Error Resume Next
  If .FileExists(WScript.Arguments(0)) Then
     Set TempFile = .OpenTextFile(WScript.Arguments(0),1)
     For Each F in Split(TempFile.ReadAll, vbnewline)
        Set List = .OpenTextFile(WScript.Arguments(1),8,True)
        E = .GetExtensionName(F)
        If E="url" Then
          List.WriteLine CreateObject("WScript.Shell").CreateShortcut(F).TargetPath
        ElseIf E="htm" Or E="html" Then
          For Each N in Filter(Split(.OpenTextFile(F).ReadAll, vbnewline), "URL=", true, 1)
            List.WriteLine N
          Next
        End If
          List.Close
     Next
     TempFile.Close
  End If
End With
Последний раз редактировалось Flasher Чт июл 07, 2011 04:07, всего редактировалось 1 раз.
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Проще то, он конечно лучше, но только первый вариант
Добавлено: Пн Май 30, 2011 12:53
извлекает также ссылки(целиком содержимое) из файлов html типа- содержимое

Код: Выделить всё

<HTML><HEAD><META HTTP-EQUIV="Refresh" CONTENT="0; URL=poisk/spravka.chm"><TITLE>302 File moved</TITLE></HEAD></HTML>
-так называемые, файлы авто переадресации. а второй скрипт нет. Конечно изначально задача ставилась -четко для второго варианта. Но, и первый оказался для меня тоже полезен. В любом случае, и первый и второй скрипты - то что надо. :) Спасибо за Внимание.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

shveicar писал(а):извлекает также ссылки(целиком содержимое) из файлов html типа- содержимое
Не знаю, зачем это надо, но целиком не может. На первые 4 символа строки будут обрезаны. Если это пробелы, то нестрашно. Могу, конечно, добавить условие, чтобы для html брались строки целиком.
Аватара пользователя
shveicar
Сообщения: 277
Зарегистрирован: Пн апр 18, 2011 01:54
Откуда: Россия Москва

Сообщение shveicar »

Не знаю, зачем это надо
Просто вместе с общими ссылками, которые были в скачанном архиве, попадались и html файлы со ссылками переадресации. Я их по началу textpipe извлекал, ну а когда скрипт появился, - сделал все за один раз.
А в скрипте, как я понял, нужно изменить

Код: Выделить всё

List.WriteLine Mid(Str(0), 5)
цифру 5 на 1 и все будет "ок". Если можно, добавь пожалуйста вариант, чтобы скрипт брал все ссылки из папки под курсором(с учетом вложенных каталогов), и при этом брал так-же, URL и из обычных html файлов. Спасибо.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

shveicar писал(а):нужно изменить цифру 5 на 1 и все будет "ок".
Это если кнопку не использовать для url-файлов, то да.
shveicar писал(а):и при этом брал так-же, URL и из обычных html файлов
Url или в том виде, как тут? Если второе, то поправил последний скрипт. Кстати, лучше теперь его использовать, т.к. в тех проблемы были с кол-вом файлов и строк.
Насчёт рекурсии посмотрим, не сейчас. Хотя ничего не мешает нажать Ctrl+F12, отфильтровать, потом Ctrl+B>Ctrl+A и нажать кнопку. Задача-то не такая уж и частая.
Ответить