Dir
Описание
Dir - команда вывода дерева каталогов. Возвращает дерево в указанный массив, с разбивкой по столбцам. Имя файла можно не указывать. При указании в качестве параметров только имени массива, возвращает текущий каталог.
Переменная 'errorlevel' содержит количество найденных элементов.
Поддерживается поиск файлов по маске.
Синтаксис
Привязка к окну: Нет.
Работа со свернутым окном: Да.
dir (%resultarray [Path [Filemask]])
Где:
%resultarray - массив, в который будет записан результат.
Возвращает по столбцам: 1) Полный корректный адрес с "\", именем файла, расширением. 2) Адрес. Полный адрес слепленный в нормальную строку с "\". 3) Имя файла без расширения. 4) Расширение файла. 5) Размер. 6) Атрибуты. 7) Дата. 8) Время. 9) Уровень вложенности для пункта 10. 10) Путь с разбивкой 1 папка 1 столбец (для вложенных папок и файлов)
Path - необязательный параметр. Путь к директории.
Filemask - необязательный параметр. Расширение для поиска по маске. Регистронезависимо:
*.ini;*.wav - соответствует любым файлам с расширениями 'ini' или 'wav' *.*|*.exe - соответствует любым файлам, кроме файлов с расширением 'EXE' *.mp3;*.wav|?.*;??.* - соответствует любым файлам с расширениями 'mp3' и 'wav', за исключением файлов у которых имя состоит из одного или двух символов.
Примеры
// Пример 1 log clear log mode compact set %a [1] 123 set %a [2] 456 // Для примера будут созданы папки и файлы 'txt' dircreate ("C:\folder987\folder654") // создать на диске 'C:\' папку 'folder987' и вложенную папку 'folder654' save_array %a C:\folder987\folder654\fail321.txt // сохранить массив в папку 'folder654' save_array %a C:\folder987\fail456.txt // сохранить массив в папку 'folder987' wait 500 // Поиск файлов с расширением 'txt' в папке 'folder654' dir (%result1 C:\folder987\folder654 *.txt*) log Найдено файлов: errorlevel // log size(%result1) - так тоже можно узнать количество файлов if size(%result1) > 0 log %result1 [1 1] - путь к файлу, с именем и расширением log %result1 [1 2] - путь к файлу log %result1 [1 3] - имя log %result1 [1 4] - расширение log %result1 [1 5] - размер log %result1 [1 6] - атрибуты log %result1 [1 7] - дата log %result1 [1 8] - время log %result1 [1 9] - уровень вложенности log %result1 [1 10] - путь с разбивкой (если 9й столбец содержит 0, то будет пустым) end_if log log -------------------- log // Поиск файлов с расширением 'txt' в папке 'folder987' dir (%result2 C:\folder987 *.txt*) // поиск файлов с расширением 'txt' log Найдено файлов: errorlevel if size(%result2) > 0 for #i 1 size(%result2) // цикл для вывода пути всех найденных файлов в лог log Путь к файлам: %result2 [#i 1] end_for end_if log log -------------------- log // Получить в массив информацию обо всех папках и файлах, находящихся на диске 'C:\' в папке 'folder987' dir (%result3 C:\folder987) log Найдено файлов и папок: errorlevel if size(%result3) > 0 for #i 1 size(%result3) // цикл для вывода пути всех найденных файлов в лог log Путь к файлам и папкам: %result3 [#i 1] end_for end_if // Можно сохранить результаты поиска: save_array %result1 C:\result1.txt save_array %result2 C:\result2.txt save_array %result3 C:\result3.txt End_script
Смотрите также
DirCreate
DirRemove
FileCopy
FileDelete
FileRename
История развития
2.30
добавил команду вывода дерева каталогов 'dir (%resultArray [path [filemask]])'. возвращает дерево в указанный массив, с разбивкой по столбцам. имя файла можно не указывать. при указании в качестве параметров только имени массива, возвращает текущий каталог. переменная 'errorlevel' содержит количество найденных элементов
дата_время размер атрибуты папка папка файл 15.10.2008 15:14:04 271696 A util VNC4 vncviewer.exe пример: set logging on set $path \ set $file *pilot* dir (%dir $path $file) for #i 1 size(%dir) set $s for #ii 4 size(%dir[1]) if %dir [#i #ii] = "" break end_if set $s $s \%dir [#i #ii] end_for set logging #i -> $path$s end_for end_script поддерживается поиск файлов по маске, регистронезависимо: '*.ini;*.wav' - соответствует любым файлам с расширениями 'ini' или 'wav' '*.*|*.exe' - соответствует любым файлам, кроме файлов с расширением 'EXE' '*.mp3;*.wav|?.*;??.*' - соответствует любым файлам с расширениями 'mp3' и 'wav', за исключением файлов у которых имя состоит из одного или двух символов.
2.33
Исправил вывод найденного пути в команде 'dir'.
Переделал команду 'dir' по предложению DarkMaster'а.
Возвращает по столбцам: 1) Полный корректный адрес с "\", именем файла, расширением. 2) Адрес. Полный адрес слепленный в нормальную строку с "\". 3) Имя файла без расширения. 4) Расширение файла. 5) Размер. 6) Атрибуты. 7) Дата. 8) Время. 9) Уровень вложенности для пункта 10. 10) Путь с разбивкой 1 папка 1 столбец (для вложенных папок и файлов)
2.38
Подправил команду 'dir', у каталогов больше не обрабатывается расширение.