Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

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

 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Mon May 30, 2011 02:31    Post subject: Извлечение ссылок из ярлыков интернета Reply with quote

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

 !  Avada:
Тема перенесена в "Автоматизацию", где смотрится более уместно.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon May 30, 2011 03:41    Post subject: Reply with quote

[=shelldetails.URL-адрес] > cm_SaveDetailsToFile
Дальше регекспы в помощь. Например, можно использовать этот скрипт с такими параметрами:
"([:.\\\w^ \t]+)http" "http" %L
Либо WdxInfoPaсker для создания списка из выделенных файлов (с рекурсией). Просто у меня он крэшиться и лагает, поэтому насчёт него не уверен.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4811
Location: Ростов-Дон

Post (Separately) Posted: Mon May 30, 2011 09:06    Post subject: Reply with quote

Как вариант, можно использовать батник:
Code:
@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=, и останутся чистые ссылки.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon May 30, 2011 12:53    Post subject: Reply with quote

Упрощаю:
Code:
' Добавление ссылок в файл-список из выделенных 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
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Mon May 30, 2011 13:52    Post subject: Reply with quote

Большое спасибо. Последний скрипт работает как надо.
А что за параметры во втором скрипте
Code:
[=shelldetails.URL-адрес] > cm_SaveDetailsToFile
куда их нужно добавлять? плагин shelldetails у меня установлен.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Mon May 30, 2011 21:21    Post subject: Reply with quote

Я не понял вопроса. Параметры идут далее и выделены жирным. Надо рассказывать, куда вставляются параметры в кнопке? А приведённая строка (почему-то в виде кода) никакого отношения к параметрам не имеет. Тем, кто пользуется колонками инфоплагинов, должно быть известно, как выглядят данные в полях. Это касается и внутренних команд ТС. Матчасть.
Только я забыл перед cm_SaveDetailsToFile указать на выполнение cm_SelectCurrentExtension.
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Tue May 31, 2011 02:14    Post subject: Reply with quote

Спасибо я разобрался
Back to top
View user's profile Send private message
Моторокер



Joined: 06 May 2005
Posts: 1517
Location: г. Пермь (читается Перьмь)

Post (Separately) Posted: Tue May 31, 2011 11:59    Post subject: Reply with quote

Как вариант, объединить файлы Тоталом в один, отсортировать полученный файл, ссылки пойдут по порядку.
_________________
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Jun 30, 2011 05:41    Post subject: Reply with quote

shveicar
Вариант попроще и побыстрее:
Code:
' Добавление ссылок/строк в файл-список из выделенных 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


Last edited by Flasher on Thu Jul 07, 2011 04:07; edited 1 time in total
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Thu Jun 30, 2011 12:48    Post subject: Reply with quote

Проще то, он конечно лучше, но только первый вариант
Quote:
Добавлено: Пн Май 30, 2011 12:53
извлекает также ссылки(целиком содержимое) из файлов html типа- содержимое
Code:
<HTML><HEAD><META HTTP-EQUIV="Refresh" CONTENT="0; URL=poisk/spravka.chm"><TITLE>302 File moved</TITLE></HEAD></HTML>
-так называемые, файлы авто переадресации. а второй скрипт нет. Конечно изначально задача ставилась -четко для второго варианта. Но, и первый оказался для меня тоже полезен. В любом случае, и первый и второй скрипты - то что надо. Smile Спасибо за Внимание.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Jun 30, 2011 18:21    Post subject: Reply with quote

shveicar wrote:
извлекает также ссылки(целиком содержимое) из файлов html типа- содержимое
Не знаю, зачем это надо, но целиком не может. На первые 4 символа строки будут обрезаны. Если это пробелы, то нестрашно. Могу, конечно, добавить условие, чтобы для html брались строки целиком.
Back to top
View user's profile Send private message
shveicar



Joined: 18 Apr 2011
Posts: 277
Location: Россия Москва

Post (Separately) Posted: Thu Jun 30, 2011 19:44    Post subject: Reply with quote

Quote:
Не знаю, зачем это надо
Просто вместе с общими ссылками, которые были в скачанном архиве, попадались и html файлы со ссылками переадресации. Я их по началу textpipe извлекал, ну а когда скрипт появился, - сделал все за один раз.
А в скрипте, как я понял, нужно изменить
Code:
List.WriteLine Mid(Str(0), 5)
цифру 5 на 1 и все будет "ок". Если можно, добавь пожалуйста вариант, чтобы скрипт брал все ссылки из папки под курсором(с учетом вложенных каталогов), и при этом брал так-же, URL и из обычных html файлов. Спасибо.
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Thu Jun 30, 2011 21:14    Post subject: Reply with quote

shveicar wrote:
нужно изменить цифру 5 на 1 и все будет "ок".
Это если кнопку не использовать для url-файлов, то да.
shveicar wrote:
и при этом брал так-же, URL и из обычных html файлов
Url или в том виде, как тут? Если второе, то поправил последний скрипт. Кстати, лучше теперь его использовать, т.к. в тех проблемы были с кол-вом файлов и строк.
Насчёт рекурсии посмотрим, не сейчас. Хотя ничего не мешает нажать Ctrl+F12, отфильтровать, потом Ctrl+B>Ctrl+A и нажать кнопку. Задача-то не такая уж и частая.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group