Страница 1 из 7
Выделить файлы по созданному списку
Добавлено: Пт окт 19, 2012 13:39
Wankuwer
Всем привет и сразу к делу.
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-ом наличии имен в текстовом документе, следовательно самостоятельное выделение файлов - утомительная и затратная по времени "работа".
Добавлено: Пт окт 19, 2012 14:41
Batya
Используем
Script Content Plugin.
Содержимое script.ini:
Код:
Код: Выделить всё
[Script]
Section=General
[General]
LongName=0
ParseDirs=0
Script=General.vbs
В каталоге плагина должен лежать файл General.vbs с содержимым:
Код: Выделить всё
'===========================================================================
' Колонка 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. Радоваться выделению файлов.
Добавлено: Пт окт 19, 2012 15:17
Wankuwer
Batya - ОГРОМНОЕ ВАМ
СПАСИБО!!!
Все заработало!
Благодаря Вам, Праблема - РЕШЕНА!

Добавлено: Пт окт 19, 2012 16:52
MVV
Есть также способ без дополнительных приспособлений. Копируем файл со списком имён в папку
D:/Arhiv, к каждому имени добавляем расширение (на раз-два в любом редакторе, поддерживающем регулярные выражения: заменить
$ на
.jpg), чтобы имена были полными (можно использовать маски):
Tumba.jpg
Avto.jpg
Luk.jpg
Planeta.jpg
Tumba.*
Avto.*
Luk.*
Planeta.*
Далее копируем путь к файлу списка, открываем поиск в тотале и в поле "Место поиска" указываем @ и путь к файлу-списку. Запускаем. Посылаем результат на панель, делаем что требуется.
Пути в файле-списке должны быть относительно папке, где файл списка лежит. Если он лежит в папке с файлами, то достаточно просто имён.
Добавлено: Пт окт 19, 2012 17:54
Wankuwer
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 работает отлично. Сложности могут возникнуть у тех, кто не хочет заворачиваться на начальном этапе и прибегать к дополнительным плагинам.
То что предлагайте Вы, так же интересно! Можно по подробнее?
Добавлено: Пт окт 19, 2012 18:03
sa
Wankuwer писал(а): Указанного пути не существует!
Надо обновить версию тотала.
Добавлено: Пт окт 19, 2012 18:11
Avada
Wankuwer
Эта фича работает только в TC версий 8.0 и выше. Подробности — в
справке.
Добавлено: Пт окт 19, 2012 19:26
MVV
Кроме того, не надо ставить пробел между собакой @ и путём к списку.
Добавлено: Пт окт 19, 2012 19:31
Tol!k
MVV писал(а):Tumba.*
Avto.*
Luk.*
Planeta.*
? а нельзя просто
Добавлено: Пт окт 19, 2012 19:33
MVV
Tol!k писал(а):? а нельзя просто
Ну я как бы проверял.

Добавлено: Ср дек 12, 2012 12:46
Sergiusnet
А если нужно найти не файлы, а папки, как тогда быть?
Добавлено: Сб дек 15, 2012 15:45
Flasher
Убрать * на конце, но тогда будут найдены ещё и одноимённые файлы без расширений.
Re: Выделить файлы по созданному списку
Добавлено: Вс дек 16, 2012 02:37
Sergiusnet
Wankuwer
выделить все нужные файлы по списку можно скопировав имена в буфер и через меню выделение-загрузить выделение из буфера, скриптов никаких не нужно и поисков
Добавлено: Вс дек 16, 2012 09:15
Avada
Sergiusnet
А попроще никак? Зачем что-то копировать в буфер, когда по исходному условию в каталоге уже есть текстовик с именами файлов? Выполняем команду "Загрузить выделение из файла" (cm_LoadSelectionFromFile) — и всё.
Добавлено: Пн май 27, 2013 21:02
Slamzor
Добрый вечер!
У меня файлы в папке, имеют следующие названия: некий шифр(заканчивается на две латинские буквы и четыре цифры - 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. Выполняю
Для выделения меняются пункты:
6. Нажать клавишу Num+. Нажать кнопку "Шаблон..."
13. Нажать "Записать". Ввести имя нового шаблона поиска, нажать "ОК". Нажать "ОК" для выбора шаблона.
14. Радоваться выделению файлов.
7.Получаю выделение всех файлов
Где я ошибся?