| 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: 10445 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 | 
		 | 
	
	
		  | 
	
	
		 |