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: 2221 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: 4811 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: 2661
|
(Separately) Posted: Fri Oct 19, 2012 18:03 Post subject: |
|
|
Wankuwer wrote: | Указанного пути не существует! |
Надо обновить версию тотала. |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10346 Location: Россия, Саратов
|
(Separately) Posted: Fri Oct 19, 2012 18:11 Post subject: |
|
|
Wankuwer
Эта фича работает только в TC версий 8.0 и выше. Подробности — в справке. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 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: 4811 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: 10346 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 |
|
|
|