Dir: различия между версиями

Материал из UoPilot
Перейти к навигации Перейти к поиску
(Новая страница: «== Описание == '''Dir''' - команда вывода дерева каталогов. Возвращает дерево в указанный масси...»)
 
 
Строка 1: Строка 1:
 
== Описание ==
 
== Описание ==
 
'''Dir''' - команда вывода дерева каталогов. Возвращает дерево в указанный массив, с разбивкой по столбцам. Имя файла можно не указывать. При указании в качестве параметров только имени массива, возвращает текущий каталог.  
 
'''Dir''' - команда вывода дерева каталогов. Возвращает дерево в указанный массив, с разбивкой по столбцам. Имя файла можно не указывать. При указании в качестве параметров только имени массива, возвращает текущий каталог.  
<br>Переменная 'errorlevel' содержит количество найденных элементов.
+
<br>Переменная 'errorlevel' содержит количество найденных элементов.
&lt;br>Поддерживается поиск файлов по маске.
+
<br>Поддерживается поиск файлов по маске.
 
   
 
   
 
== Синтаксис ==
 
== Синтаксис ==
 
Привязка к окну: Нет.
 
Привязка к окну: Нет.
&lt;br>Работа со свернутым окном: Да.
+
<br>Работа со свернутым окном: Да.
 
  dir (%resultarray [Path [Filemask]])
 
  dir (%resultarray [Path [Filemask]])
 
Где:
 
Где:
&lt;br>'''%resultarray''' - массив, в который будет записан результат.
+
<br>'''%resultarray''' - массив, в который будет записан результат.
 
  Возвращает по столбцам:
 
  Возвращает по столбцам:
 
   1) Полный корректный адрес с "\", именем файла, расширением.
 
   1) Полный корректный адрес с "\", именем файла, расширением.
Строка 22: Строка 22:
 
   10) Путь с разбивкой 1 папка 1 столбец (для вложенных папок и файлов)
 
   10) Путь с разбивкой 1 папка 1 столбец (для вложенных папок и файлов)
 
'''Path''' - необязательный параметр. Путь к директории.
 
'''Path''' - необязательный параметр. Путь к директории.
&lt;br>'''Filemask''' - необязательный параметр. Расширение для поиска по маске. Регистронезависимо:  
+
<br>'''Filemask''' - необязательный параметр. Расширение для поиска по маске. Регистронезависимо:  
 
  *.ini;*.wav            - соответствует любым файлам с расширениями 'ini' или 'wav'
 
  *.ini;*.wav            - соответствует любым файлам с расширениями 'ini' или 'wav'
 
  *.*|*.exe              - соответствует любым файлам, кроме файлов с расширением 'EXE'
 
  *.*|*.exe              - соответствует любым файлам, кроме файлов с расширением 'EXE'
Строка 89: Строка 89:
  
 
[[DirCreate]]
 
[[DirCreate]]
&lt;br>[[DirRemove]]
+
<br>[[DirRemove]]
&lt;br>[[FileCopy]]
+
<br>[[FileCopy]]
&lt;br>[[FileDelete]]
+
<br>[[FileDelete]]
&lt;br>[[FileRename]]
+
<br>[[FileRename]]
  
 
== История развития ==
 
== История развития ==
  
 
'''2.30'''
 
'''2.30'''
&lt;br>добавил команду вывода дерева каталогов 'dir (%resultArray [path [filemask]])'. возвращает дерево в указанный массив, с разбивкой по столбцам. имя файла можно не указывать. при указании в качестве параметров только имени массива, возвращает текущий каталог. переменная 'errorlevel' содержит количество найденных элементов
+
<br>добавил команду вывода дерева каталогов 'dir (%resultArray [path [filemask]])'. возвращает дерево в указанный массив, с разбивкой по столбцам. имя файла можно не указывать. при указании в качестве параметров только имени массива, возвращает текущий каталог. переменная 'errorlevel' содержит количество найденных элементов
 
     дата_время размер атрибуты папка папка файл
 
     дата_время размер атрибуты папка папка файл
 
     15.10.2008 15:14:04 271696 A util VNC4 vncviewer.exe
 
     15.10.2008 15:14:04 271696 A util VNC4 vncviewer.exe
Строка 122: Строка 122:
  
 
'''2.33'''
 
'''2.33'''
&lt;br>Исправил вывод найденного пути в команде 'dir'.
+
<br>Исправил вывод найденного пути в команде 'dir'.
&lt;br>Переделал команду 'dir' по предложению DarkMaster'а.
+
<br>Переделал команду 'dir' по предложению DarkMaster'а.
 
     Возвращает по столбцам:
 
     Возвращает по столбцам:
 
     1) Полный корректный адрес с "\", именем файла, расширением.
 
     1) Полный корректный адрес с "\", именем файла, расширением.
Строка 137: Строка 137:
  
 
'''2.38'''
 
'''2.38'''
&lt;br>Подправил команду 'dir', у каталогов больше не обрабатывается расширение.
+
<br>Подправил команду 'dir', у каталогов больше не обрабатывается расширение.
 
[[Категория:Файлы]]
 
[[Категория:Файлы]]

Текущая версия на 10:24, 28 августа 2019

Описание

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', у каталогов больше не обрабатывается расширение.