Поиск каталогов, содержащих файлы заданного типа
Материал из TCKB 2.0
Q: Как можно найти все каталоги (и только каталоги), в которых содержатся файлы определенного типа?
Например, надо получить список каталогов, в которых есть файлы с расширением TXT.
A: Делаешь кнопку на панели инструментов:
| Код кнопки |
|---|
|
TOTALCMD#BAR#DATA: cmd.exe /c for /f %%i in ('dir /b /s /ad') do if exist %%i\*.txt echo %%i >> 1.txt D:\dshell\WCMICONS.DLL,27 Поиск каталогов с *.txt -1 |
И после её нажатия получаешь в файле 1.txt получаешь нужный тебе список.
P.S. Только для winnt\xp\2000\2003
Evgenych
A: Можно использовать плагин Script Content.
script.ini:
[Script] Section=File Types In Dir [File Types In Dir] Script=FileTypesInDir.vbs LongName=1 ParseDirs=1
FileTypesInDir.vbs:
Dim FSO, Fold, FilesInFold, ScanFile, FileExt Set FSO = CreateObject("Scripting.FileSystemObject") content = "" If FSO.FolderExists(filename) Then Set Fold = FSO.GetFolder(filename) Set FilesInFold = Fold.Files On Error Resume Next For Each ScanFile in FilesInFold FileExt = FSO.GetExtensionName(ScanFile.Path) If FileExt = "" Then FileExt = " " End If If Instr(1, content, FileExt, 1) = 0 Then content = content & "," & FileExt End If Next On Error GoTo 0 If Len(content) > 0 Then content = Mid(content, 2) End If Set Fold = Nothing Set FilesInFold = Nothing End If Set FSO = Nothing
Скрипт сделал так, что он возвращает для папок расширения файлов, перечисленные через запятую. Если файл без расширения, то я в эту строку вставляю пробел.
Т.о., при поиске из TC переходим на закладку "Плагины", ставим "Поиск с плагинами", выбираем:
Плагин = script,
Свойство = Result,
Операция = "содержит",
Значение (например) = txt.
