| View previous topic :: View next topic | 
	
	
		| Author | Message | 
	
		| Wankuwer 
 
  
 Joined: 19 Oct 2012
 Posts: 3
 Location: Москва
 
 | 
			
				|  (Separately) Posted: Fri Oct 19, 2012 13:39    Post subject: Выделить файлы по созданному списку |   |  
				| 
 |  
				| Всем привет и сразу к делу. 
 1) Есть файл (Список) D:/Data.txt его содержимое:
 
 2) В директории D:/Arhiv/ Находятся файлы:
 
 Nanunaki.jpg
Tumba.jpg
 Avto.jpg
 Robot.jpg
 Semki.jpg
 Luk.jpg
 Planeta.jpg
 Lef.jpg
 
 Вопрос: Как автоматом выделить файлы, имена которых есть в текстовом документе Data.txt ?
 
 Просмотрел множество форумов, но конкретного и простого ответа не нашёл, возможно плоха смотрел, но сил уже просто нет. Речь идет о огромном массиве файлов (свыше 600 файлов), а также о n-ом наличии имен в текстовом документе, следовательно самостоятельное выделение файлов - утомительная и затратная по времени "работа".
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Batya 
 
  
 Joined: 15 Dec 2004
 Posts: 2229
 Location: Москва, Россия
 
 | 
			
				|  (Separately) Posted: Fri Oct 19, 2012 14:41    Post subject: |   |  
				| 
 |  
				| Используем Script Content Plugin. Содержимое script.ini:
 Код:
 
  	  | Code: |  	  | [Script] 
Section=General
 
 [General]
 LongName=0
 ParseDirs=0
 Script=General.vbs
 | 
 
 В каталоге плагина должен лежать файл General.vbs с содержимым:
 
  	  | Code: |  	  | '===========================================================================
' Колонка Result возвращает признак наличия файла\каталога в указанном файле-списке:
 '   0 - файл\каталог НЕ найден; 1 - файл\каталог найден
 '===========================================================================
 
 '========== Изменяемые параметры ===========================================
 Const FileList = "D:/Data.txt" 'Файл-список
 '===========================================================================
 
 Dim FSO
 Set FSO = CreateObject("Scripting.FileSystemObject")
 Const ForReading = 1
 content = Result
 Set FSO = Nothing
 
 Function Result
 Dim List, dlm
 Result = 0
 If Not FSO.FileExists(FileList) Then
 Exit Function
 End If
 
 On Error Resume Next
 List = FSO.OpenTextFile(FileList, ForReading, False).ReadAll
 If Err.Number <> 0 Then
 Exit Function
 End If
 On Error GoTo 0
 
 dlm = vbNewLine
 If InStr(1, dlm & List & dlm, dlm & FSO.GetBaseName(filename) & dlm, vbTextCompare) > 0 Then
 Result = 1
 End If
 End Function
 | 
 
 Как пользоваться для поиска.
 Для выделения меняются пункты:
 6. Нажать клавишу Num+. Нажать кнопку "Шаблон..."
 13. Нажать "Записать". Ввести имя нового шаблона поиска, нажать "ОК". Нажать "ОК" для выбора шаблона.
 14. Радоваться выделению файлов.
 _________________
 Нет, я не сплю. Я просто медленно моргаю.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Wankuwer 
 
  
 Joined: 19 Oct 2012
 Posts: 3
 Location: Москва
 
 | 
			
				|  (Separately) Posted: Fri Oct 19, 2012 15:17    Post subject: |   |  
				| 
 |  
				| Batya - ОГРОМНОЕ ВАМ СПАСИБО!!! Все заработало!
 Благодаря Вам, Праблема - РЕШЕНА!
  |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| MVV 
 
  
 Joined: 15 Oct 2009
 Posts: 4815
 Location: Ростов-Дон
 
 | 
			
				|  (Separately) Posted: Fri Oct 19, 2012 16:52    Post subject: |   |  
				| 
 |  
				| Есть также способ без дополнительных приспособлений. Копируем файл со списком имён в папку D:/Arhiv, к каждому имени добавляем расширение (на раз-два в любом редакторе, поддерживающем регулярные выражения: заменить $ на .jpg), чтобы имена были полными (можно использовать маски): 
  	  | Quote: |  	  | Tumba.jpg Avto.jpg
 Luk.jpg
 Planeta.jpg
 | 
 
  	  | Quote: |  	  | Tumba.* Avto.*
 Luk.*
 Planeta.*
 | 
 Далее копируем путь к файлу списка, открываем поиск в тотале и в поле "Место поиска" указываем @ и путь к файлу-списку. Запускаем. Посылаем результат на панель, делаем что требуется.
 
 Пути в файле-списке должны быть относительно папке, где файл списка лежит. Если он лежит в папке с файлами, то достаточно просто имён.
 _________________
 TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
 WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Wankuwer 
 
  
 Joined: 19 Oct 2012
 Posts: 3
 Location: Москва
 
 | 
			
				|  (Separately) Posted: Fri Oct 19, 2012 17:54    Post subject: |   |  
				| 
 |  
				| MVV к большому сожалению, не работает, вот скрин. 
 Текстовый документ Data.txt который лежит там же где и файлы (D:\Arhiv) содержит:
 
 Файлы в дериктории: D:\Arhiv
 
 Ananas.jpg
Kokos.jpg
 Planeta.jpg
 Zebra.jpg
 Data.txt
 В Total Commander жму Alt+7
 
Искать файлы: Оставляю пустым.
 Место поиска: @ "D:\Arhiv\Data.txt"
 Место поиска: @ D:\Arhiv\Data.txt
 Место поиска: @ D:\Arhiv
 На все попытки: Указанного пути не существует!
 
 Способ предложенный Batya работает отлично. Сложности могут возникнуть у тех, кто не хочет заворачиваться на начальном этапе и прибегать к дополнительным плагинам.
 
 То что предлагайте Вы, так же интересно! Можно по подробнее?
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| sa 
 
 
 Joined: 29 Apr 2009
 Posts: 2709
 
 
 | 
			
				|  (Separately) Posted: Fri Oct 19, 2012 18:03    Post subject: |   |  
				| 
 |  
				|  	  | Wankuwer wrote: |  	  | Указанного пути не существует! | 
 Надо обновить версию тотала.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Avada 
 
  
 Joined: 01 Aug 2008
 Posts: 10443
 Location: Россия, Саратов
 
 | 
			
				|  (Separately) Posted: Fri Oct 19, 2012 18:11    Post subject: |   |  
				| 
 |  
				| Wankuwer Эта фича работает только в TC версий 8.0 и выше. Подробности — в справке.
 _________________
 Даже самая богатая фантазия
 Не представит себе наши безобразия.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| MVV 
 
  
 Joined: 15 Oct 2009
 Posts: 4815
 Location: Ростов-Дон
 
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Tol!k 
 
  
 Joined: 01 Apr 2008
 Posts: 1727
 Location: Арзамас
 
 | 
			
				|  (Separately) Posted: Fri Oct 19, 2012 19:31    Post subject: |   |  
				| 
 |  
				|  	  | MVV wrote: |  	  | Tumba.* Avto.*
 Luk.*
 Planeta.*
 | 
 ? а нельзя просто
 
  	  | Code: |  	  | Tumba 
Avto
 Luk
 Planeta
 | 
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| MVV 
 
  
 Joined: 15 Oct 2009
 Posts: 4815
 Location: Ростов-Дон
 
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Sergiusnet 
 
 
 Joined: 11 Dec 2012
 Posts: 11
 
 
 | 
			
				|  (Separately) Posted: Wed Dec 12, 2012 12:46    Post subject: |   |  
				| 
 |  
				| А если нужно найти не файлы, а папки, как тогда быть? |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Flasher 
 
  
 Joined: 06 Nov 2009
 Posts: 14229
 Location: Москва
 
 | 
			
				|  (Separately) Posted: Sat Dec 15, 2012 15:45    Post subject: |   |  
				| 
 |  
				| Убрать * на конце, но тогда будут найдены ещё и одноимённые файлы без расширений. _________________
 Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Sergiusnet 
 
 
 Joined: 11 Dec 2012
 Posts: 11
 
 
 | 
			
				|  (Separately) Posted: Sun Dec 16, 2012 02:37    Post subject: Re: Выделить файлы по созданному списку |   |  
				| 
 |  
				| Wankuwer выделить все нужные файлы по списку можно скопировав имена в буфер и через меню выделение-загрузить выделение из буфера,  скриптов никаких не нужно и поисков
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Avada 
 
  
 Joined: 01 Aug 2008
 Posts: 10443
 Location: Россия, Саратов
 
 | 
			
				|  (Separately) Posted: Sun Dec 16, 2012 09:15    Post subject: |   |  
				| 
 |  
				| Sergiusnet А попроще никак? Зачем что-то копировать в буфер, когда по исходному условию в каталоге уже есть текстовик с именами файлов? Выполняем команду "Загрузить выделение из файла" (cm_LoadSelectionFromFile) — и всё.
 _________________
 Даже самая богатая фантазия
 Не представит себе наши безобразия.
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		| Slamzor 
 
 
 Joined: 26 May 2013
 Posts: 19
 
 
 | 
			
				|  (Separately) Posted: Mon May 27, 2013 21:02    Post subject: |   |  
				| 
 |  
				| Добрый вечер! У меня файлы в папке, имеют следующие названия: некий шифр(заканчивается на две латинские буквы и четыре цифры - FI00021 в  примере)_имя_версия_дата(год_месяц_день).
 Нужно разделить файлы на две "корзины", с помощью колонки из екселя-списка. В этом списке есть имена.
 
 Вопрос, как можно выделить, чтобы впоследствии скопировать файлы по списку, учитывая дату создания. Нужны файлы с последней датой.
 Пример:
 50_3_МКО_06_FI00021_Отчет_01_2013_03_23
 
 Что сделал:
 1. Установил Script Content Plugin ( в настройках отображен-C:\program files\ ... \script.wdx
 2. Const FileList = "C:FileList.txt" 'Файл-список.
 3. В General прописал путь C:FileList.txt.
 4. В FileList вношу строку  для поиска Отчет.
 5. Выполняю
  	  | Quote: |  	  | Для выделения меняются пункты: 6. Нажать клавишу Num+. Нажать кнопку "Шаблон..."
 13. Нажать "Записать". Ввести имя нового шаблона поиска, нажать "ОК". Нажать "ОК" для выбора шаблона.
 14. Радоваться выделению файлов.
 | 
 7.Получаю выделение всех файлов
 Где я ошибся?
 |  | 
	
		| Back to top |  | 
	
		|  | 
	
		|  |