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 

Найти и сохранить все иконки в файлах .dll, .icl...в папке
Goto page 1, 2  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Mon Nov 09, 2009 19:18    Post subject: Найти и сохранить все иконки в файлах .dll, .icl...в папке Reply with quote

Помогите пожалйста: Есть папка, подпапки, файлы
Задача просканировать всё файлы в этой папке и подпапках, и найти те, которые содержат в себе значки(иконки) и затем извлечь все значки в указанную папку (если в файле, например icon.dll, имеется несколько значков, то при сохранении создавать имена типа icon_001, icon_002 и т.д)
Возможно здесь понадобится скрипт
Вот ряд параметров, которые можно включить в скрипт
- искать иконки только в .xxx файлах (к примеру icl...)
- искать иконки только в ряде файлов .xxx .yyy .zzz ...
- искать в любых файлах
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Mon Nov 09, 2009 20:10    Post subject: Reply with quote

Andrey_A
Реплика по ходу дела безотносительно к скриптам, внешним программам и прочему. Чисто по именам. Вариант "icon_001, icon_002..." для одного файла с несколькими значками — допустим, годится. А для другого, пятого, сотого? Как эти наборы предполагается друг от друга по именам отличать? Или всё хочется свалить в одну кучу с нумерацией в порядке извлечения?
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Mon Nov 09, 2009 21:43    Post subject: Reply with quote

Удалено.
Читать отсюда http://forum.wincmd.ru/viewtopic.php?p=56052#56052


Last edited by Tol!k on Wed Nov 11, 2009 00:18; edited 1 time in total
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Tue Nov 10, 2009 18:58    Post subject: Reply with quote

Avada wrote:
Как эти наборы предполагается друг от друга по именам отличать?

Можно добавлять к именам вначале
[имя родительской папки]_[имя файла]_[расширение]_[счётчик]

Tol!k wrote:
Tol!k

Tol!k, спасибо за утилиту, код... теперь осталось это запустить
Подскажи как связать код с утилитой - это батник или cmdшник
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Tue Nov 10, 2009 19:12    Post subject: Reply with quote

Это .cmd
Утилиту можно на выбор:
- положить в папку, которая прописана в переменной %path%
- папку, в которой лежит утилита, добавить к переменной %path%
- прописать в коде полный путь (типа D:\totalcmd\utils\icl.exe) - к сожалению, положить утилиту рядом с .cmd в данном случае не достаточно

Кнопка
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\utils\icons.cmd
"*.icl *.dll" "E:\stuff\icons\"
%COMMANDER_PATH%\wcmicons.dll,26
Извлечь все значки


-1
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Tue Nov 10, 2009 19:59    Post subject: Reply with quote

Tol!k, всё вроде бы сделал как написано, но ничего не выходит
где точно в коде прописать полный путь? я его прописал там:
Code:
"c:\Total Commander\Utilities\Icl\icl.exe" e "%~2%%~nxf" *
del /q "%~2%%~nxf"

Кнопка моя вот:
Code:
TOTALCMD#BAR#DATA
"C:\Total Commander\Utilities\Icl\ICLALL.cmd"
"*.icl *.dll" "d:\2\"
C:\Total Commander\TOTALCMD.EXE,24
ICLALL


-1

Что не так?
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Tue Nov 10, 2009 20:32    Post subject: Reply with quote

a) папка "d:\2\" существует?
б) если в папке %tmp% остался файл ico.tmp ,то сотри его
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Tue Nov 10, 2009 21:04    Post subject: Reply with quote

Папка "d:\2\" существует
файла в папке темп нет
кстати один раз что-то сработало... в папке "d:\2\" появлялись
поочерёдно файлы dll и icl, потом исчезали, затем появлялись другие,
на экране висела командная строка, мелькали строчки, всё закончилось... никаких значков в папке я не увидел
вторичное.троичное.. нажатие на кнопку результатов не дало
Вопрос: папки(у), в которых я хочу найти значки надо выделять
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Tue Nov 10, 2009 21:29    Post subject: Reply with quote

Похоже, утилитка не находит в твоих файлах иконки (я предупреждал)
Вот с этими файлами работает http://letitbit.net/download/4840.4406fab8581b19f8e6ab53183/2icl.zip.html
Quote:
папки(у), в которых я хочу найти значки надо...
просто открыть (зайти)
Обработаются она и все подпапки
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Tue Nov 10, 2009 21:53    Post subject: Reply with quote

У меня даже на этих библиотеках не срабатывает
командная строка что-то делает, но иконок в папке не обнаруживается
Может утилита не срабатывает на Viste?
А может в коде ошибке?
... или ещё что-то
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Tue Nov 10, 2009 22:19    Post subject: Reply with quote

Quote:
Может утилита не срабатывает на Viste?

положи в одну папку icl.exe и эти 2 библиотеки и выполни: icl.exe e * *
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Tue Nov 10, 2009 22:54    Post subject: Reply with quote

К сожалению не сработало, вот, что выдала командная строка
Code:
 Processing history.txt ...
 Done.
 Processing ICL.addon ...
 Done.
 Processing icl.exe ...
 Done.
 Processing ICLALL.cmd ...
 Done.
 Processing readme.txt ...
 Done.
 Processing X-Qute.icl ...
 Done.
 Processing XPStyle.icl ...
 Done.
C:\Total Commander\Utilities\Icl>

и ничего не произошло...
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Tue Nov 10, 2009 23:35    Post subject: Reply with quote

Quote:
Processing X-Qute.icl ...
Done.
Processing XPStyle.icl ...
Done.
и ничего не произошло...
А там иконки...
Так, всё забыли. Начинаем по новой.
Back to top
View user's profile Send private message
Tol!k



Joined: 01 Apr 2008
Posts: 1727
Location: Арзамас

Post (Separately) Posted: Wed Nov 11, 2009 00:17    Post subject: Reply with quote

Code:
'  File:         Icons.vbs
'  Description:  Распаковывает *.icl *.dll,
'  каждую библиотеку в отдельную папку
'  Requirements: WSH Helper for TC by Volniy
'                ICLRead.wcx by Progman13

Option Explicit
Dim TCS
Set TCS=CreateObject("TCSCRIPT.Helper")
TCS.Pause=100
TCS.SendCommand "cm_DirBranch", False
TCS.SendCommand "cm_SpreadSelection", False
'  Что распаковываем:
TCS.SendKeystroke "*.icl *.dll"
TCS.SendKeystroke "{ENTER}"
TCS.SendCommand "cm_UnpackFiles", False
'  Куда складываем:
TCS.SendKeystroke "D:\stuff\icons\"
TCS.SendKeystroke "{TAB 4}"
TCS.SendKeystroke chr(32)
TCS.SendKeystroke "{ENTER}"
TCS.SendCommand "cm_DirBranch", False
Set TCS = Nothing
WScript.Quit
Подкаталоги шерстит.
.dll распаковывает!
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Wed Nov 11, 2009 01:43    Post subject: Reply with quote

Идея интересная. После запуска скрипта
1. Показалась ошибка в открытии .dll файлов (.icl сработали сразу)
2. После изменения .dll в архивах они распаковались, но не все

Вот какие минусы я увидел

1 Если попадается файл .dll - "Архив повреждён или имеет неизвестный формат", то процесс останавливается

2.После того как я в настройках архивных плагинов прописал, что .dll файлы открываются ICLRead.wcx, то они стали открываться..., но в тотале отображаются как архивы, можно что-нибудь сделать, чтобы они открывались, как архивы, но выглядели как обычно (привычно)

3.Как же быть с .exe файлами и другими

4. Сканирование подпапок

Вот несколько мыслей на тему
1. В начале использовать команду cm_DirBranch , которая открывает все подпапки
2. Помечает, как у тебя и прописано (единственное это расширить группу .exe... )
3. Может быть скопировать все выделенные файлы куда-нибудь
4. Переименовать их в .icl (что даёт возможность извлекать иконки из .exe, .cpl.....)
5. А уж потом извлечь
6. Удалить
Только вот как быть с теми, которые не открываются и останавливают процесс?
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
Goto page 1, 2  Next
Page 1 of 2

 
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