View previous topic :: View next topic |
Author |
Message |
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Mon Nov 09, 2009 19:18 Post subject: Найти и сохранить все иконки в файлах .dll, .icl...в папке |
|
|
Помогите пожалйста: Есть папка, подпапки, файлы
Задача просканировать всё файлы в этой папке и подпапках, и найти те, которые содержат в себе значки(иконки) и затем извлечь все значки в указанную папку (если в файле, например icon.dll, имеется несколько значков, то при сохранении создавать имена типа icon_001, icon_002 и т.д)
Возможно здесь понадобится скрипт
Вот ряд параметров, которые можно включить в скрипт
- искать иконки только в .xxx файлах (к примеру icl...)
- искать иконки только в ряде файлов .xxx .yyy .zzz ...
- искать в любых файлах |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10252 Location: Россия, Саратов
|
(Separately) Posted: Mon Nov 09, 2009 20:10 Post subject: |
|
|
Andrey_A
Реплика по ходу дела безотносительно к скриптам, внешним программам и прочему. Чисто по именам. Вариант "icon_001, icon_002..." для одного файла с несколькими значками — допустим, годится. А для другого, пятого, сотого? Как эти наборы предполагается друг от друга по именам отличать? Или всё хочется свалить в одну кучу с нумерацией в порядке извлечения? _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
|
Back to top |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Tue Nov 10, 2009 18:58 Post subject: |
|
|
Avada wrote: | Как эти наборы предполагается друг от друга по именам отличать? |
Можно добавлять к именам вначале
[имя родительской папки]_[имя файла]_[расширение]_[счётчик]
Tol!k, спасибо за утилиту, код... теперь осталось это запустить
Подскажи как связать код с утилитой - это батник или cmdшник |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Tue Nov 10, 2009 19:12 Post subject: |
|
|
Это .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 |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Tue Nov 10, 2009 19:59 Post subject: |
|
|
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 |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Tue Nov 10, 2009 20:32 Post subject: |
|
|
a) папка "d:\2\" существует?
б) если в папке %tmp% остался файл ico.tmp ,то сотри его |
|
Back to top |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Tue Nov 10, 2009 21:04 Post subject: |
|
|
Папка "d:\2\" существует
файла в папке темп нет
кстати один раз что-то сработало... в папке "d:\2\" появлялись
поочерёдно файлы dll и icl, потом исчезали, затем появлялись другие,
на экране висела командная строка, мелькали строчки, всё закончилось... никаких значков в папке я не увидел
вторичное.троичное.. нажатие на кнопку результатов не дало
Вопрос: папки(у), в которых я хочу найти значки надо выделять |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
|
Back to top |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Tue Nov 10, 2009 21:53 Post subject: |
|
|
У меня даже на этих библиотеках не срабатывает
командная строка что-то делает, но иконок в папке не обнаруживается
Может утилита не срабатывает на Viste?
А может в коде ошибке?
... или ещё что-то |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Tue Nov 10, 2009 22:19 Post subject: |
|
|
Quote: | Может утилита не срабатывает на Viste? |
положи в одну папку icl.exe и эти 2 библиотеки и выполни: icl.exe e * * |
|
Back to top |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Tue Nov 10, 2009 22:54 Post subject: |
|
|
К сожалению не сработало, вот, что выдала командная строка
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 |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Tue Nov 10, 2009 23:35 Post subject: |
|
|
Quote: | Processing X-Qute.icl ...
Done.
Processing XPStyle.icl ...
Done.
и ничего не произошло... | А там иконки...
Так, всё забыли. Начинаем по новой. |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Wed Nov 11, 2009 00:17 Post subject: |
|
|
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 |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Wed Nov 11, 2009 01:43 Post subject: |
|
|
Идея интересная. После запуска скрипта
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 |
|
|
|