| View previous topic :: View next topic   | 
	
	
	
		| Author | 
		Message | 
	
	
		Andrey_A
 
  
  Joined: 10 Apr 2009 Posts: 394 Location: Сочи
  | 
		
			
				  (Separately) Posted: Tue Dec 22, 2009 20:31    Post subject: Как найти по одному файлу каждого типа | 
				     | 
			 
			
				
  | 
			 
			
				| Продолжаю заниматься ассоциированием, и цель не пропустить ни одного расширения. А потом пришла мысль - на диске найти все файлы по одному разных типов. Как это сделать? Поиском? скриптом? | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		CaptainFlint
 
  
  Joined: 14 Dec 2004 Posts: 6206 Location: Москва
  | 
		
			
				  (Separately) Posted: Tue Dec 22, 2009 22:40    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Andrey_A
 
Скрипты тут особо не нужны. Глобальный поиск Тоталом (не забудь отметить, чтоб искал только файлы), скопировать список в буфер, дальше любым пристойным текстовым редактором отрезать всё, кроме расширений, удалить дубликаты и отсортировать. В EmEditor'е, в частности, всё это делается на ура. _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Tol!k
 
  
  Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
  | 
		
			
				  (Separately) Posted: Tue Dec 22, 2009 23:55    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Andrey_A, уточни,
 
нужно перечислить все существующие расширения (без имён)
 
или найти по одному файлу каждого расширения?
 
И если второе, в каком виде сделать выходной список:
 
d:\path\file.ext
 
d:\path\file2.ext2
 
или
 
ext d:\path\file.ext
 
ext2 d:\path\file2.ext2 | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Tol!k
 
  
  Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
  | 
		
			
				  (Separately) Posted: Wed Dec 23, 2009 00:38    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Andrey_A, надеюсь, я понял тебя правильно.
 
В начале .cmd добавь/удали нужные буквы дисков.
 
 	  | Code: | 	 		  @echo off &chcp 1251 >nul
 
setlocal enableextensions
 
 
title C:\
 
dir c: /a-d/b/s/oe >c:\_all_files.tmp
 
title D:\
 
dir d: /a-d/b/s/oe >>c:\_all_files.tmp
 
title E:\
 
dir e: /a-d/b/s/oe >>c:\_all_files.tmp
 
 
for /f "delims=" %%f in (c:\_all_files.tmp) do (
 
echo %%~xf: "%%f">> c:\_ext_files.tmp
 
)
 
sort c:\_ext_files.tmp /o c:\_sort_exts.tmp
 
del /q c:\_all_files.tmp &del /q c:\_ext_files.tmp
 
 
set "e=."
 
for /f "tokens=1,*" %%e in (c:\_sort_exts.tmp) do (
 
title .%%e &call :compare %%e %%f
 
)
 
del /q c:\_sort_exts.tmp &exit /b
 
 
:compare
 
if not "%e%"=="%1" (
 
echo %1 %2>> c:\_one_ext.txt
 
set "e=%1"
 
)
 
goto :eof  | 	  
 
Исправлено
  Last edited by Tol!k on Tue Feb 23, 2010 00:57; edited 1 time in total | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Вахмурка
 
  
  Joined: 27 Dec 2004 Posts: 2586 Location: Большая деревня Москва
  | 
		 | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Andrey_A
 
  
  Joined: 10 Apr 2009 Posts: 394 Location: Сочи
  | 
		
			
				  (Separately) Posted: Wed Dec 23, 2009 04:00    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Quote: | 	 		  | =надеюсь, я понял тебя правильно | 	  
 
Tol!k
 
Да, ты меня понял правильно, просто уточню: нужен список в обычной форме с:\...\файл.txt , чтобы я смог скопировать его в папку, но список нужен не всех на диске файлов, а только по одному от каждого вида. Т.е если программа поиска нашла файл.txt и добавила в лист, то при повторном нахождении файлов с расширением .txt, уже ничего не добавляется в список листа, и так с каждым расширением. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Tol!k
 
  
  Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
  | 
		
			
				  (Separately) Posted: Tue Dec 29, 2009 19:10    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Разве c:\_one_file.lst не то, что нужно? — "только по одному от каждого вида"
 
 	  | Quote: | 	 		  | если программа поиска нашла файл.txt и добавила в лист, то при повторном нахождении файлов с расширением .txt, уже ничего не добавляется в список | 	  Алгоритм cложнее, а в итоге всё равно придётся прочесать весь диск. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		D1P
 
  
  Joined: 20 Dec 2004 Posts: 2974 Location: Тбилиси
  | 
		
			
				  (Separately) Posted: Mon Jan 11, 2010 17:29    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Случайно обнаружил готовый способ сделать требуемое (найти все типы файлов, присутствующих на диске): плагин VisualDirSize имеет этот функционал по умолчанию, плюс умеет сохранять отчёт о работе, содержащий тот самый список. _________________ База знаний о Total Commander
 
Блог | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Tol!k
 
  
  Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
  | 
		
			
				  (Separately) Posted: Tue Feb 23, 2010 00:58    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				| В батнике была недоработка. Исправил. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		 |