Каталог расширений

Популярные теги

3gp       avi       fb2       jpg       mp3       pdf      

Как сделать список файлов в папке


Как сохранить список файлов в папке

У некоторых пользователей, при работе на компьютере, возникает необходимость получить список файлов в папке. Такой список может быть нужен для разных целей: для каталогизации файлов в папках, для сравнения содержимого в папках, для того, чтобы составить список фильмов, музыкальных композиций, электронных книг и т. п.

Во многих случаях, количество файлов может быть очень большим, поэтому вручную составить полный список находящихся в папке файлов будет проблематично. Предположим, в папке на вашем компьютере хранится электронная библиотека, или вы имеете большое собрание фильмов. Даже увлеченному человеку запомнить все содержимое папки или диска будет нереально.

Выходом из этой ситуации будет создание списка файлов, находящихся в данной папке, а потом сохранение этого списка в текстовый файл. В дальнейшем, полученный список можно будет отредактировать так, как это будет необходимо.

Например, у меня на внешних жестких дисках, каждый из которых имеет размер в несколько терабайт, хранится большая коллекция фильмов, которые я собирал несколько лет. Мне, конечно, тяжело запомнить все названия фильмов, которые хранятся на жестких дисках.

Встречая в интернете какой-либо фильм, имея у себя список файлов в папке, я могу легко проверить, есть ли такой фильм у меня в коллекции, или я встретил новый фильм. Поэтому я приступил к поиску решения данного вопроса.

В итоге, я нашел несколько простых вариантов решения этой проблемы. Создать список файлов в папке можно разными способами: при помощи командной строки, при помощи файла, который имеет расширение «.bat», при помощи специальных программ, сохранить список в браузере.

Сохранение списка файлов с помощью командной строки

Вначале вам необходимо будет перейти к нужной папке, или диску, если вы хотите получить список файлов, которые находятся на диске. После открытия папки или диска, удерживая на клавиатуре кнопку «Shift», кликните правой кнопкой мыши внутри этой папки. В открывшемся контекстном меню выберите пункт «Открыть окно команд».

После этого откроется окно консоли, в которой уже будет указан путь к нужной директории (в вашем случае, будет к той папке, которую вы откроете). В этом примере, это папка «Программы» на Рабочем столе моего компьютера. В этой папке находятся другие папки, в которых находятся ярлыки программ.

Далее нужно будет ввести одну из этих команд:

dir /b>filelist.txt dir /s>filelist.txt

После ввода «dir» должен быть пробел. Вместо «filelist» может написать свое название файла, только латинскими буквами. Не забудьте в конце добавить формат «.txt».

Эти команды отличаются друг от друга в использовании дополнительных критериев сохранения списка файлов:

  • /b — обозначает, что будут сохранены только имена файлов.
  • /s — обозначает, что дополнительно в список будут включены все файлы и подкаталоги (подпапки), которые находятся в этой папке.

Затем на клавиатуре нажмите на кнопку «Enter».

После этого вы можете открыть папку и увидеть, что в папке находится текстовый файл «filelist». Теперь можете открыть этот файл с помощью Блокнота.

Если в данной папке некоторые файлы имели русские имена, то вместо имен этих файлов, вы увидите непонятные символы (крякозябры). Дело в том, что программа Блокнот не понимает кодировку MS-DOS.

Поэтому, открыть созданный файл, можно будет с помощью программы Word. Предполагаю, что у большинства пользователей, на компьютере установлена данная программа.

Кликните по текстовому файлу правой кнопкой мыши, а затем в контекстном меню выберите пункт «Открыть с помощью». Выберите для открытия файла программу Microsoft Office Word. В окне программы Word будет открыто окно «Преобразование текста», в котором нужно будет выбрать кодировку MS-DOS, которая позволит прочитать этот документ.

На образце вы увидите правильное отображение текста.

После нажатия на кнопку «ОК», данный текст будет открыт в программе Word. Вы можете провести редактирование документа, а потом сохранить его на компьютере в нужном формате, в том числе в формате «TXT». Проблем с кодировкой после сохранения файла уже не будет.

Получение списка файлов в папке с помощью bat файла

Один из самых доступных и простых способов получения списка файлов в папке: использование для этого специального bat файла. Существует несколько вариантов создания файла с расширением «.bat», с разным кодом.

Для создания bat файла вам нужно будет открыть Блокнот, а затем вставить туда этот код:

chcp 1251 echo %date% %time% >filelist.txt dir /b /d >>filelist.txt

Сохраните этот файл, имя файлу можете дать любое, самому файлу нужно дать расширение «BAT». Параметры сохранения файла в Блокноте будут выглядеть примерно так:

  • Имя файла: filelist.bat
  • Тип файла: Все файлы

После этого нажмите на кнопку «Сохранить».

Далее помещаете созданный файл в ту папку, из которой вы хотите получить, список находящихся там файлов. После этого, запустите файл с расширением «.bat». В данной папке будет создан файл «filelist» в формате «.txt», в котором будет находиться список файлов.

Существует несколько вариантов содержимого файла с расширением «.bat». При использовании этого метода, проблем с кодировкой не возникнет.

Программа DirLister для получения списка файлов

Вы можете создать список файлов расположенных в папке, при помощи бесплатной программы DirLister. Эта крошечная программа не требует установки на компьютер. После загрузки программы на свой компьютер, распакуйте архив с программой.

DirLister скачать

Для запуска программы, откройте папку с программой, а потом кликните по приложению DirLister.

В окне программы DirLister, в разделе «Directory To Scan», при помощи кнопки «Open», вам нужно будет выбрать папку для сканирования.

В разделе «Output File», при помощи кнопки «Save As…», вам необходимо будет выбрать место для сохранения списка файлов.

Вы можете уточнить критерии поиска файлов по маске «*.*», выбрав нужное имя или тип файла («TXT», «Excel», «HTML» и т. д.). После выбора необходимых настроек, нажмите на кнопку «Make List».

После завершения сканирования в левом нижнем углу программы будет выведена информация об успешном завершении создания списка файлов: «All file processed correctly».

Программа DirLister выводит не только список файлов в данной папке, но и дает полную информацию о вложенных в эту папку файлах и папках, в том числе о размере файлов.

Получаем список файлов в Total Commander

Получить список файлов в папке можно при помощи популярного файлового менеджера Total Commander. Для этого, открываете в окне программы нужную папку.

Вам также может быть интересно:

В меню «Выделение», сначала выбираете пункт «Выделить всё». После того, как все файлы были выделены, в этом же меню выбираете пункт «Копировать имена в буфер».

Потом открываете Блокнот или другой текстовый редактор, и вставляете туда список файлов из буфера обмена.

Вы можете в меню «Выделение» выбрать пункт «Сохранить выделение в файл…». В этом случае, вам нужно будет дать имя файлу, а затем сохранить его в формате «TXT».

Сохранение списка файлов в папке в браузере

Получить список файлов в папке можно при помощи браузера. Сначала откройте браузер, а затем перетащите папку в окно браузера. Список файлов будет открыт в окне браузера. Между содержимым можно будет перемещаться как в Проводнике.

Далее можете просто скопировать список файлов в текстовый редактор, сохранить список в HTML файл, или сохранить в PDF при помощи виртуального принтера.

Выводы статьи

При помощи таких достаточно простых способов, вы можете легко создать список файлов, которые находятся в конкретной папке или на диске вашего компьютера. Вы можете использовать наиболее удобный для себя способ сохранения списка файлов.

3 способа получить список файлов в папке (видео)

Похожие публикации:

https://vellisa.ru/5-sposobov-poluchit-spisok-faylovКак сохранить список файлов в папкеhttps://vellisa.ru/wp-content/uploads/2015/02/00.jpghttps://vellisa.ru/wp-content/uploads/2015/02/00-300x231.jpgВасилийСоветыУ некоторых пользователей, при работе на компьютере, возникает необходимость получить список файлов в папке. Такой список может быть нужен для разных целей: для каталогизации файлов в папках, для сравнения содержимого в папках, для того, чтобы составить список фильмов, музыкальных композиций, электронных книг и т. п. Во многих случаях, количество файлов...ВасилийВасилий [email protected]Автор 700+ статей на сайте Vellisa.ru. Опытный пользователь ПК и ИнтернетИнтернет и программы для всех

Пять простых способов получить список файлов и папок в Windows 10

При работе на компьютере иногда возникает необходимость получить полный список файлов и папок в каталоге или даже целом томе. Понадобиться он может для самых разных целей, например, для каталогизации, для сравнения, для использования в какой-то базе данных и так далее. В большинстве случаев приходится иметь дело с большим числом объектов, поэтому нечего и думать, чтобы составить такой список вручную.

Если создание списка файлов вручную представляется едва ли возможным, то какая есть тому альтернатива, какие программные инструменты лучше всего подойдут для этих целей? Решений существует несколько, все они очень просты и удобны. Получить список файлов и папок можно с помощью обычной командной строки, с помощью PowerShell, штатного Проводника, любого браузера, а также с помощью сторонних специализированных утилит.

Получаем список файлов и папок в командной строке

Для чтения содержимого каталогов в старой доброй командной строке предусмотрена команда dir, её то как раз мы и будем использовать. Итак, запускаем консоль CMD, командой cd Буква диска:/путь (если нужно перейти в другой диск, добавляем после cd ключ /d) переходим в нужное расположение и выполняем эти две команды:

chcp 1251
 dir /b /s > D:\filelist.tхt

Первая команда устанавливает кириллическую кодировку, вторая сохраняет список всех файлов, папок и вложенных в них объектов в текстовый лог на диске D.

Если нужно получить список только файлов (без вложенных каталогов), достаточно использовать только ключ /b.

Примечание: в Windows 8.1 и 7 для быстрого перехода в папку в командной строке, зажмите Shift, кликните ПКМ по папке и выберите в контекстном меню опцию «Открыть окно команд».

Список файлов и папок в PowerShell

В Windows 10 командная строка заменена консолью PowerShell, для получения списка файлов можете использовать её. Для примера выведем в файл содержимое папки Тест с её подкаталогами:

Get-Childitem -Path D:\Тест -Recurse | Out-File D:\filelist.tхt

А можно и проще. Зажав Shift, кликаем по папке ПКМ, выбираем в меню «Открыть PowerShell здесь».

И выполняем в открывшемся окне консоли команду Get-Childitem -Recurse | Out-File D:\filelist.tхt.

Необходимость использования параметра -Path с указанием пути в данном случае отпадает.

Получение списка файлов или папок в Проводнике

Этот способ позволяет получить список либо файлов, либо папок в конкретном расположении. Заходим в целевую папку, выделяем в ней все файлы или папки, зажимаем Shift, кликаем правой кнопкой мыши и выбираем в меню опцию «Копировать как путь».

Пути и имена выделенных объектов будут переданы в буфер обмена, откуда вы уже сможете перенести их в текстовый файл.

Получение списка файлов с помощью DirLister

Для получения хорошо структурированного списка объектов файловой системы можно воспользоваться бесплатной портативной утилитой DirLister, скачав её с официального сайта:

www.barrysoft.it/blog/software/dirlister

Запустив утилиту, укажите в разделе «Directory To Scan» путь к сканируемому каталогу или диску, в разделе «Output File» выберите расположение для сохранения списка.

Здесь же можно задать параметры сканирования — выбрать формат, указать, нужно ли включать в список вложенные директории и скрытые объекты, задать поиск по маске. После нажатия кнопки «Make List» список будет сохранён в выбранном расположении.

Используем для получения списка файлов браузер

На худой конец для создания списка файлов и папок на диске можно воспользоваться любым браузером. Перетаскиваем папку или диск на новую вкладку браузера и получаем список имеющихся в ней файлов и каталогов.

Рекурсивно пройтись по всем вложенным каталогам, правда, не получится да и для копирования путей и имён файлов и переноса их в отдельный файл придется использовать Ctrl + C и Ctrl + V.

5 способов получить список файлов в папке

  • Подписаться
  • Лента публикаций
  • Последние публикации
  • Лучшие публикации
    • за все время
    • за полгода

Как получить список файлов в папке Windows

&nbsp windows

Когда ко мне обратились с вопросом о том, как быстро вывести список файлов в текстовый файл, я понял, что ответа я не знаю. Хотя задача, как оказалось, достаточно часто встречающаяся. Это может потребоваться для передачи списка файлов специалисту (для решения какой-то проблемы), самостоятельного ведения журнала содержимого папок и других целей.

Решено было устранить пробел и подготовить инструкцию на эту тему, в которой будет показано, как получить список файлов (и вложенных папок) в папке Windows средствами командной строки, а также о том, как автоматизировать этот процесс, если задача возникает часто.

Получение текстового файла с содержимым папки в командной строке

Сначала о том, как сделать текстовый документ, содержащий список файлов в нужной папке, вручную.

  1. Запустите командную строку от имени администратора.
  2. Введите cd x:\folder\ где x:\folder\ — полный путь к папке, список файлов из которой нужно получить. Нажмите Enter.
  3. Введите команду dir /a /-p /o:gen >files.txt (где files.txt — текстовый файл, в котором будет сохранен список файлов). Нажмите Enter.
  4. Если использовать команду с параметром /b (dir /a /b /-p /o:gen >files.txt), то в полученном списке будет отсутствовать любая дополнительная информация о размерах файлов или дате создания — только список имен.

Готово. В результате будет создан текстовый файл, содержащий необходимую информацию. В команде выше, данный документ сохраняется в той же папке, список файлов из которой требуется получить. Можно также убрать вывод в текстовый файл, в этом случае список будет отображаться только в командной строке.

Кроме этого, для пользователей русскоязычной версии Windows следует учитывать то, что файл сохраняется в кодировке Windows 866, то есть в обычном блокноте вместо русских символов вы увидите иероглифы (но можно использовать альтернативный текстовый редактор для просмотра, например, Sublime Text).

Получаем список файлов с помощью Windows PowerShell

Вы также можете получить список файлов в папке используя команды Windows PowerShell. Если вы хотите сохранить список в файл, то запустите PowerShell от имени администратора, если просто просмотреть в окне — достаточно простого запуска.

Примеры команд:

  • Get-Childitem -Path C:\Folder — вывод списка всех файлов и папок, находящихся в папке Folder на диске C в окне Powershell.
  • Get-Childitem -Path C:\Folder | Out-File C:\Files.txt — создание текстового файла Files.txt со списком файлов в папке Folder.
  • Добавление параметра -Recurse к первой описанной команде выводит в списке также содержимое всех вложенных папок.
  • Параметры -File и -Directory позволяют получить список только файлов или только папок соответственно.

Выше перечислены далеко не все параметры Get-Childitem, но в рамках описываемой в этом руководстве задачи, думаю, их будет достаточно.

Утилита Microsoft Fix it для печати содержимого папки

На странице https://support.microsoft.com/ru-ru/kb/321379 присутствует утилита Microsoft Fix It, добавляющая в контекстное меню проводника пункт «Print Directory Listing», выводящий список файлов в папке на печать.

Несмотря на то, что программа предназначена только для Windows XP, Vista и Windows 7, она успешно сработала и в Windows 10, достаточно было запустить ее в режиме совместимости.

Дополнительно, на той же странице показан порядок ручного добавления команды вывода списка файлов в проводник, при этом вариант для Windows 7 подойдет и для Windows 8.1 и 10. А если вам не требуется вывод на печать, вы можете немного подправить предлагаемые Microsoft команды, удалив параметр /p в третьей строке и полностью убрав четвертую.

А вдруг и это будет интересно:

Список файлов в папке

Иногда бывает необходимо заполучить на лист Excel список файлов в заданной папке и ее подпапках. В моей практике такое встречалось неоднократно, например:

  • перечислить в приложении к договору на проведение тренинга список файлов из раздаточных материалов для особо щепетильных юристов в некоторых компаниях
  • создать список файлов для ТЗ проекта
  • сравнить содержимое папок (оригинал и бэкап, например)

Для реализации подобной задачи можно использовать несколько способов.

Способ 1. Скелет из шкафа - функция ФАЙЛЫ

Этот способ использует древнюю функцию ФАЙЛЫ (FILES), оставшуюся в Microsoft Excel с далеких девяностых. Вы не найдете эту функцию в общем списке функций, но для совместимости, она всё ещё остаётся внутри движка Excel, и мы вполне можем её использовать.

Механизм таков:

1. В любую ячейку листа (например, в А1) введём путь к папке, список файлов из которой мы хотим получить.


Обратите внимание, что путь должен оканчиваться шаблоном со звездочками:

  • *.* - любые файлы
  • *.xlsx - книги Excel (только с расширением xlsx)
  • *.xl* - любые файлы Excel
  • *отчет* - файлы, содержащие слово отчет в названии

и т.д.

2. Создадим именованный диапазон с помощью вкладки Формулы - далее кнопка Диспетчер имен - Создать (Formulas - Names Manger - Create). В открывшемся окне введем любое имя без пробелов (например Мои_файлы) и в поле диапазона выражение:

=ФАЙЛЫ(Лист1!$A$1)


После нажатия на ОК будет создан именованный диапазон с именем Мои_файлы, где хранится список всех файлов из указанной в А1 папки. Останется их оттуда только извлечь.

3. Чтобы извлечь имена отдельных файлов из созданной переменной, используем функцию ИНДЕКС (INDEX), которая в Excel вытаскивает данные из массива по их номеру:

Если лениво делать отдельный столбец с нумерацией, то можно воспользоваться костылем в виде функции СТРОКИ (ROWS), которая будет подсчитывать количество заполненных строк с начала списка автоматически:

=ИНДЕКС(Мои_файлы; ЧСТРОК($B$3:B3))

Ну, и скрыть ошибки #ССЫЛКА! в конце списка (если вы протягиваете формулу с запасом) можно стандартной функцией ЕСЛИОШИБКА (IFERROR):

=ЕСЛИОШИБКА(ИНДЕКС(Мои_файлы; ЧСТРОК($B$3:B3)); "")

Важное примечание: формально функция ФАЙЛЫ относится к макро-функциям, поэтому необходимо будет сохранить ваш файл в формате с поддержкой макросов (xlsm или xlsb).

Способ 2. Готовый макрос для ленивых

Если вы знакомы с макросами (не в смысле их программирования, а в смысле копипастинга готовых кодов на VBA), то вам, возможно, отлично зайдёт небольшой макрос, добавляющий в текущую книгу новый пустой лист и выводящий на него список всех файлов с их параметрами из заданной пользователем папки.

Для добавления макроса в вашу книгу нажмите сочетание клавиш Alt+F11, или кнопку Visual Basic на вкладке Разработчик (Developer), в открывшемся окне редактора Visual Basic вставьте новый модуль через меню Insert - Module и скопируйте туда текст этого макроса:

Sub FileList()
 Dim V As String
 Dim BrowseFolder As String
 
 'открываем диалоговое окно выбора папки
 With Application.FileDialog(msoFileDialogFolderPicker)
 .Title = "Выберите папку или диск"
 .Show
 On Error Resume Next
 Err.Clear
 V = .SelectedItems(1)
 If Err.Number <> 0 Then
 MsgBox "Вы ничего не выбрали!"
 Exit Sub
 End If
 End With
 BrowseFolder = CStr(V)
 
 'добавляем лист и выводим на него шапку таблицы
 ActiveWorkbook.Sheets.Add
 With Range("A1:E1")
 .Font.Bold = True
 .Font.Size = 12
 End With
 Range("A1").Value = "Имя файла"
 Range("B1").Value = "Путь"
 Range("C1").Value = "Размер"
 Range("D1").Value = "Дата создания"
 Range("E1").Value = "Дата изменения"
 
 'вызываем процедуру вывода списка файлов
 'измените True на False, если не нужно выводить файлы из вложенных папок
 ListFilesInFolder BrowseFolder, True
 End Sub
 
 
 Private Sub ListFilesInFolder(ByVal SourceFolderName As String, ByVal IncludeSubfolders As Boolean)
 
 Dim FSO As Object
 Dim SourceFolder As Object
 Dim SubFolder As Object
 Dim FileItem As Object
 Dim r As Long
 
 Set FSO = CreateObject("Scripting.FileSystemObject")
 Set SourceFolder = FSO.getfolder(SourceFolderName)
 
 r = Range("A65536").End(xlUp).Row + 1 'находим первую пустую строку
 'выводим данные по файлу
 For Each FileItem In SourceFolder.Files
 Cells(r, 1).Formula = FileItem.Name
 Cells(r, 2).Formula = FileItem.Path
 Cells(r, 3).Formula = FileItem.Size
 Cells(r, 4).Formula = FileItem.DateCreated
 Cells(r, 5).Formula = FileItem.DateLastModified
 r = r + 1
 X = SourceFolder.Path
 Next FileItem
 
 'вызываем процедуру повторно для каждой вложенной папки
 If IncludeSubfolders Then
 For Each SubFolder In SourceFolder.SubFolders
 ListFilesInFolder SubFolder.Path, True
 Next SubFolder
 End If
 
 Columns("A:E").AutoFit
 
 Set FileItem = Nothing
 Set SourceFolder = Nothing
 Set FSO = Nothing
 
 End Sub
 

Для запуска макроса нажмите сочетание клавиш Alt+F8,или кнопку Макросы (Macros) на вкладке Разработчик (Developer), выберите наш макрос FileList и нажмите кнопку Выполнить (Run). В диалоговом окне выберите любую папку или диск и - вуаля!

Если захотите, чтобы вместо пути к файлу в столбце B выводилась живая гиперссылка, то замените 52-ю строку

Cells(r, 2).Formula = FileItem.Path

на

Cells(r, 2).Formula = "=HYPERLINK(""" & FileItem.Path & """)"

Способ 3. Мощь и красота - надстройка Power Query

Power Query - это очень мощная и при этом бесплатная надстройка для Excel от Microsoft, упрощающая множество задач по загрузке и трансформации данных. В нашей ситуации она тоже может здорово помочь.

Если у вас Excel 2016 или новее, то Power Query уже встроена в Excel по умолчанию, поэтому просто на вкладке Данные выберите команду Создать запрос / Получить данные - Из файла - Из папки (Create Query / Get Data - From file - From folder). Если у вас Excel 2010-2013, то Power Query нужно будет скачать с сайта Microsoft и установить как отдельную надстройку и она появится у вас в Excel в виде отдельной вкладки Power Query. На ней будет аналогичная кнопка Из файла - Из папки (From file - From folder).

В открывшемся окне нужно будет указать папку, содержимое которой мы хотим получить. После нажатия на ОК Power Query обшарит указанную папку и все вложенные подпапки и выдаст на экран окно с предварительным просмотром результатов:


Если внешний вид списка вас устраивает, то можно смело жать внизу кнопку Загрузить (Load), чтобы залить эти данные на новый лист. Если же хочется дополнительно обработать список (удалить лишние столбцы, отобрать только нужные файлы и т.п.), то нужно выбрать команду Изменить / Преобразовать данные (Edit / Transform Data).

Поверх окна Excel откроется окно редактора Power Query, где мы увидим список всех наших файлов в виде таблицы:


Дальше возможны несколько вариантов:

  • Если нужны только файлы определенного типа, то их можно легко отобрать с помощью фильтра по столбцу Extension:

  • Аналогичным образом фильтрами по столбцам Date accessed, Date modified или Date created можно отобрать файлы за нужный период (например, созданные только за последний месяц и т.п.):

  • Если нужно получить данные не из всех папок, то фильтруем по столбцу Folder Path, чтобы оставить только те строки, где путь содержит/не содержит нужные имена папок:

  • Там же можно выполнить сортировку файлов по любому столбцу, если требуется.

После того, как необходимые файлы отобраны, можно смело удалить ненужные столбцы, щелкнув по заголовку столбца правой кнопкой мыши и выбрав команду Удалить (Remove column). Это, кстати, уже никак не повлияет на фильтрацию или сортировку нашего списка:

Если в будущем планируется подсчитывать количество файлов в каждой папке (например, для контроля поступивших заявок или подсчета статистики по заявкам), то имеет смысл дополнительно сделать ещё пару действий:

  • Щелкните правой кнопкой мыши по столбцу Folder Path и выберите команду Дублировать столбец (Duplicate Column).
  • Выделите скопированный столбец и на вкладке Преобразование (Transform) выберите Разделить столбец - По разделителю (Split Column - By delimiter)

Мы получим рядом с нашими данными еще несколько столбцов, где будут продублированы имена вложенных папок - это пригодится нам чуть позже для подсчета статистики с помощью сводной таблицы:

Получившиеся столбцы можно переименовать (Диск, Папка1, Папка2 и т.д.), просто щёлкнув дважды по заголовку каждого.

И, наконец, когда список готов, то его можно выгрузить на лист с помощью команды Главная - Закрыть и загрузить - Закрыть и загрузить в... (Home - Close & Load - Close & Load to...):

И, само-собой, теперь можно построить по нашей таблице сводную (вкладка Вставка - Сводная таблица), чтобы легко подсчитать количество файлов в каждой папке:

Дополнительным бонусом можно сделать еще один столбец с функцией ГИПЕРССЫЛКА (HYPERLINK), которая создаст красивые стрелочки-ссылки для моментального перехода к каждому файлу:


Мелочь, а приятно :)

И вдвойне приятно, что в будущем, при изменении содержимого исходной папки, достаточно будет просто щелкнуть мышью по нашей таблице и выбрать команду Обновить (Refresh) - и Power Query выполнит всю цепочку запрограммированных нами единожды действий уже автоматически, отобразив все изменения в составе папки.

Ссылки по теме

 

Как сделать список файлов в папке, v popke

5 способов получить список файлов в папке

У некоторых пользователей, при работе на компьютере, возникает необходимость получить список файлов в папке. Такой список может быть нужен для разных целей: для каталогизации файлов в папках, для сравнения содержимого в папках, для того, чтобы составить список фильмов, музыкальных композиций, электронных книг и т. п.

Во многих случаях, количество файлов может быть очень большим, поэтому вручную составить полный список находящихся в папке файлов будет проблематично. Предположим, в папке на вашем компьютере хранится электронная библиотека, или вы имеете большое собрание фильмов. Даже увлеченному человеку запомнить все содержимое папки или диска будет нереально.

Выходом из этой ситуации будет создание списка файлов, находящихся в данной папке, а потом сохранение этого списка в текстовый файл. В дальнейшем, полученный список можно будет отредактировать так, как это будет необходимо.

Например, у меня на внешних жестких дисках, каждый из которых имеет размер в несколько терабайт, хранится большая коллекция фильмов, которые я собирал несколько лет. Мне, конечно, тяжело запомнить все названия фильмов, которые хранятся на жестких дисках.

Встречая в интернете какой-либо фильм, имея у себя список файлов в папке, я могу легко проверить, есть ли такой фильм у меня в коллекции, или я встретил новый фильм. Поэтому я приступил к поиску решения данного вопроса.

В итоге, я нашел несколько простых вариантов решения этой проблемы. Создать список файлов в папке можно разными способами: при помощи командной строки, при помощи файла, который имеет расширение «.bat», при помощи специальных программ, сохранить список в браузере.

Сохранение списка файлов с помощью командной строки

Вначале вам необходимо будет перейти к нужной папке, или диску, если вы хотите получить список файлов, которые находятся на диске. После открытия папки или диска, удерживая на клавиатуре кнопку «Shift», кликните правой кнопкой мыши внутри этой папки. В открывшемся контекстном меню выберите пункт «Открыть окно команд».

После этого откроется окно консоли, в которой уже будет указан путь к нужной директории (в вашем случае, будет к той папке, которую вы откроете). В этом примере, это папка «Программы» на Рабочем столе моего компьютера. В этой папке находятся другие папки, в которых находятся ярлыки программ.

Далее нужно будет ввести одну из этих команд:

dir /b>filelist.txt dir /s>filelist.txt

После ввода «dir» должен быть пробел. Вместо «filelist» может написать свое название файла, только латинскими буквами. Не забудьте в конце добавить формат «.txt».

Эти команды отличаются друг от друга в использовании дополнительных критериев сохранения списка файлов:

  • /b — обозначает, что будут сохранены только имена файлов.
  • /s — обозначает, что дополнительно в список будут включены все файлы и подкаталоги (подпапки), которые находятся в этой папке.

Затем на клавиатуре нажмите на кнопку «Enter».

После этого вы можете открыть папку и увидеть, что в папке находится текстовый файл «filelist». Теперь можете открыть этот файл с помощью Блокнота.

Если в данной папке некоторые файлы имели русские имена, то вместо имен этих файлов, вы увидите непонятные символы (крякозябры). Дело в том, что программа Блокнот не понимает кодировку MS-DOS.

Поэтому, открыть созданный файл, можно будет с помощью программы Word. Предполагаю, что у большинства пользователей, на компьютере установлена данная программа.

Кликните по текстовому файлу правой кнопкой мыши, а затем в контекстном меню выберите пункт «Открыть с помощью». Выберите для открытия файла программу Microsoft Office Word. В окне программы Word будет открыто окно «Преобразование текста», в котором нужно будет выбрать кодировку MS-DOS, которая позволит прочитать этот документ.

На образце вы увидите правильное отображение текста.

После нажатия на кнопку «ОК», данный текст будет открыт в программе Word. Вы можете провести редактирование документа, а потом сохранить его на компьютере в нужном формате, в том числе в формате «TXT». Проблем с кодировкой после сохранения файла уже не будет.

Получение списка файлов в папке с помощью bat файла

Один из самых доступных и простых способов получения списка файлов в папке: использование для этого специального bat файла. Существует несколько вариантов создания файла с расширением «.bat», с разным кодом.
Для создания bat файла вам нужно будет открыть Блокнот, а затем вставить туда этот код:

chcp 1251 echo %date% %time% >filelist.txt dir /b /d >>filelist.txt

Сохраните этот файл, имя файлу можете дать любое, самому файлу нужно дать расширение «BAT». Параметры сохранения файла в Блокноте будут выглядеть примерно так:

  • Имя файла: filelist.bat
  • Тип файла: Все файлы

После этого нажмите на кнопку «Сохранить».

Далее помещаете созданный файл в ту папку, из которой вы хотите получить, список находящихся там файлов. После этого, запустите файл с расширением «.bat». В данной папке будет создан файл «filelist» в формате «.txt», в котором будет находиться список файлов.

Существует несколько вариантов содержимого файла с расширением «.bat». При использовании этого метода, проблем с кодировкой не возникнет.

Программа DirLister для получения списка файлов

Вы можете создать список файлов расположенных в папке, при помощи бесплатной программы DirLister. Эта крошечная программа не требует установки на компьютер. После загрузки программы на свой компьютер, распакуйте архив с программой.

DirLister скачать

Для запуска программы, откройте папку с программой, а потом кликните по приложению DirLister.

В окне программы DirLister, в разделе «Directory To Scan», при помощи кнопки «Open», вам нужно будет выбрать папку для сканирования.

В разделе «Output File», при помощи кнопки «Save As…», вам необходимо будет выбрать место для сохранения списка файлов.

Вы можете уточнить критерии поиска файлов по маске «*.*», выбрав нужное имя или тип файла («TXT», «Excel», «HTML» и т. д.). После выбора необходимых настроек, нажмите на кнопку «Make List».

После завершения сканирования в левом нижнем углу программы будет выведена информация об успешном завершении создания списка файлов: «All file processed correctly».

Программа DirLister выводит не только список файлов в данной папке, но и дает полную информацию о вложенных в эту папку файлах и папках, в том числе о размере файлов.

Автоматическое создание списка файлов

К счастью, функционал Windows и других программных решений, позволяет создавать списки файлов в папках в автоматическом порядке. Данные списки можно потом будет без проблем скопировать в текстовый файл и редактировать по мере необходимости.

Рассмотрим все имеющиеся способы создания такого списка.

Вариант 1: «Командная строка»

Этот способ является стандартным и не требует от пользователя каких-либо особых умений, за исключением базового владения «Командной строкой». Итак, инструкция к данному варианту выглядит следующим образом:

  1. Перейдите в ту папку, список файлов из которой вы хотели бы получить.
  2. Теперь зажмите Shift на клавиатуре и нажмите правой кнопкой мыши по пустому месту в окне «Проводника».
  3. Должно появится контекстное меню, где требуется выбрать вариант «Запуск командной строки» или «Открыть окно команд здесь». В случае с последними версиями Windows 10 такого пункта может не быть. Вместо этого нужно нажать на «Запустить окно PowerShell здесь». PowerShell – это новый аналог «Командной строки», который Майкрософт активно внедряет в последние версии Windows 10. По сути отличий в функционале нет никаких.
  4. Теперь вы можете ввести одну из следующих команд:
    • dir /b>spisok.txt Данная команда сохраняет только имена файлов в файл spisok.txt. Вы можете вместо него указать любое другое название, какое вам будет удобно, но учтите, что оно не должно содержать кириллических символов;
    • dir /s>spisok.txt Сохраняет не только имена файлов, содержащихся в папке, но и имена папок и подпапок, которые могут быть расположена в основной папке.
  5. Для применения выбранной команды впишите её и нажмите на Enter.
  6. Спустя некоторое время в той папке, в которую вы перешли в первом шаге появится файл с названием spisok.txt или другим, если вы задавали другое. Откройте его с помощью «Блокнота».

Как изменить расширение файла в Windows
Как изменить файл hosts в Windows
Конвертеры ODT в DOC онлайн

Всю информацию из него можно скопировать в документ Word, так как последний удобнее редактировать. К тому же, если в папке содержались файлы или другие папки в названии которых присутствовали кириллические символы, то в «Блокноте» таковые могут отображаться некорректно, так как нужные кодировки не поддерживаются.

Вариант 2: Использование BAT-файла

Данный способ тоже не отличается какой-либо сложностью, плюс даёт почувствовать себя немного программистом. Суть заключается в создании специального файла с алгоритмом, который выведет список всех элементов в папке в отдельный текстовый файл. Итак, рассмотрим инструкцию к этому варианту более подробно:

  1. Создайте в любом месте на компьютере текстовый файл. Для этого нажмите правой кнопкой мыши и в меню выберите пункт «Создать». Из открывшегося подменю выберите вариант «Текстовый файл».
  2. Теперь откройте только что созданный файл при помощи «Блокнота».
  3. Пропишите туда следующий алгоритм:

    chcp 1251

    echo %date% %time% >spisok.txt

    dir /b /d >>spisok.txt

  4. После исполнения данного BAT-файла в папке, где он был выполнен будет создан текстовый файл spisok.txt, где будет представлен список всех элементов, находящихся в папке. Но для начала вам нужно сохранить этот алгоритм, как BAT-файл. Нажмите в верхнем меню на «Файл», а из контекстного меню выберите вариант «Сохранить как».
  5. В поле «Имя файла» введите spisok.bat, а в «Тип файла» поставьте значение «Все файлы».
  6. Нажмите «Сохранить».
  7. Теперь перенесите созданный BAT-файл в папку, из которой требуется получить список файлов.
  8. Запустите его двойным нажатием левой кнопки мыши.
  9. Появится окно, где будет показано выполнение алгоритма, спустя несколько секунд окно исчезнет, а в папке появится файл spisok.txt, где будет представлен список всех элементов в папке.

Содержимое данного файла также можно перенести в текстовый документ MS Word. Однако в этом случае проблем с кодировкой и неверным отображением кириллических символов не наблюдается.

Вариант 3: DirLister

Данное бесплатное ПО не требуется установки на компьютер и с его помощью вы можете создать список всех элементов в той или иной папке. Инструкция по её использованию выглядит следующим образом:

  1. Перейдите на официальный сайт разработчика и скачайте архив с программой.
  2. Распакуйте архив, вытащив от туда исполняемый EXE-файл.
  3. Запустите его.
  4. Обратите внимание на блок «Directory To Scan». Здесь будет расположен адрес папки, которую нужно просканировать. Выберите её при помощи кнопки «Open».
  5. Откроется окно «Проводника» Windows, где нужно выбрать нужную папку и открыть её.
  6. Теперь перейдите в блок ниже – «Output File». Здесь указывается место для сохранения текстового файла со списком. Нажмите на кнопку «Save as», чтобы указать расположение для сохранения.
  7. В блоке «File Type» можно указать критерии сохранения файлов в список. Например, сохранятся будут только названия файлов с расширением HTML, TXT и т.д. Для этого нужно установить маркеры напротив соответствующих пунктов.
  8. Чтобы начать процедуру создания списка, нажмите на кнопку «Make List», что расположена в нижней части окна.
  9. Спустя некоторое время вы увидите надпись «All file processed correctly», что означает успешное завершение процедуры.

Вариант 4: Total Commander

Total Commander – это популярный файловый менеджер, где пользователь может быстро получить и скопировать всю основную информацию о файлах, а также о содержимом папок. В данном случае получить список файлов, находящихся в папке, можно следующим образом:

  1. В окне Total Commander откройте нужную папку.
  2. В верхнем меню нажмите на пункт «Выделение». Появится контекстное меню, где нужно нажать на вариант «Выделить всё».
  3. Затем в этом же меню выберите пункт «Копировать имена файлов в буфер обмена».
  4. Создайте и откройте текстовый документ. Это можно сделать как при помощи простого Блокнота, так и Word или других офисных программ.
  5. Вставьте содержимое буфера обмена на страницу, воспользовавшись комбинацией клавиш Ctrl+V или вызвав контекстное меню и выбрав там соответствующий пункт.

Вариант 5: Браузер

Во всех современных браузерах, будь то Opera, Google Chrome, Yandex и т.д., есть функция просмотра содержимого папок и некоторых файлов, расположенных на компьютере.

Инструкция к этому варианту выглядит следующим образом:

  1. Откройте «Проводник». Выберите при помощи щелчка левой кнопкой мыши ту папку, которую хотите просмотреть в браузере.
  2. Перетащите эту папку в любой удобный для вас браузер. В данном случае рассматривается вариант с Opera.
  3. Здесь откроется папка со всем содержимым, которое будет представлено в виде списка. Выделите его и скопируйте, использовав сочетание клавиш Ctrl+C.
  4. Создайте любой текстовый документ и откройте его.
  5. Вставьте скопированный список.

Это были все способы, позволяющие вывести список содержимых в папке файлов в отдельный текстовый документ.

Пакетное создание папок в PowerShell и Bash Windows 10

Если вам нужно создать группу папок в Windows, вместо того чтобы нажимать на ленте Проводника «Создать папку», можете воспользоваться встроенной консолью PowerShell. Этот способ позволит вам сэкономить время. Откройте любым удобным для вас способом PowerShell, а сделать это можно через меню Пуск, через поиск, через диалоговое окошко «Выполнить» и через меню Win + X, предварительно заменив консолью стандартную командную строку.

А еще ее можно запустить из адресной строки Проводника, находясь в директории, в которой вы собираетесь создавать группу папок. В данном случае этот способ имеет преимущества, так как избавляет пользователя от необходимости переходить в нужный каталог в PowerShell.

Сама же команда создания папок выглядит следующим образом:

mkdir $(1..30 | %{«Папка$_»})

«Расшифруем» значения в круглых скобках. Выражение 1..30 означает, что будет создано 30 папок, %{«Папка$_»}) – это имя папки с переменной $_, на место которой будет подставляться порядковый номер очередного создаваемого каталога.

Для группового создания папок в Windows 10 можно также использовать новый инструмент – консоль Ubuntu Bash. Переход в нужное расположение в Bash выполняется с помощью команды cd, например, cd /mnt/d/Public, где d – буква диска, а создание группы папок командой mkdir dir{1..30}.

Кстати, есть твик реестра, с помощью которого Ubuntu Bash можно добавить непосредственно в меню Проводника, что позволит вам открывать консоль сразу в нужном расположении. Скачать его можно по ссылке .

Как мне составить список файлов в папке и всех ее подпапках?

Привет, сценарист! Как я могу перечислить все файлы в папке, а также все файлы в любых подпапках этой папки?

- MA

Эй, Массачусетс. Это вопрос, который нам задают довольно часто, и на который до сих пор избегали ответа. Это потому, что на этот вопрос нет простого и приятного ответа: сценарий, который может выполнять эту задачу, обязательно будет немного запутанным и не подойдет для простого для объяснения подхода, который мы предпочитаем. с этим столбцом.С другой стороны, заказчик всегда прав: ребята, если вам нужен скрипт, который может перечислить все файлы в папке, а также все файлы в любых подпапках этой папки, ну, кто мы такие, чтобы спорить?

Прежде чем мы начнем, нам нужно решить две проблемы. Во-первых, нам нужно выбрать технологию создания сценариев. WMI, FileSystemObject и объект Shell могут перечислять файлы в папке, а также перечислять подпапки в папке. Однако ни одна из этих технологий не имеет механизма для автоматического перечисления файлов в этих подпапках (не говоря уже о каких-либо подпапках, которые могут там находиться).Любая из этих технологий сработает, но ни одна не сделает это легко.

Мы выбрали WMI. Результирующий сценарий, возможно, немного сложнее, чем аналогичный сценарий, использующий FileSystemObject или объект Shell, но сценарий WMI, который может извлекать такую ​​информацию на локальном компьютере, может так же легко получить такую ​​информацию с удаленного компьютера. Это не относится ни к объекту FileSystemObject, ни к объекту Shell. Мы проголосовали за гибкость WMI.

Во-вторых, мы отметили, что ни одна из технологий создания сценариев не имеет встроенного способа перебора папки, перечисления имен файлов, а затем автоматического перебора всех без исключения подпапок и перечисления найденных в них файлов. Из-за этого нам нужно использовать рекурсивную функцию для выполнения этой задачи. Объяснение рекурсии выходит за рамки того, что мы можем сделать в этом столбце; для краткого объяснения обратитесь к Microsoft Windows 2000 Scripting Guide . Достаточно сказать, что мы создаем функцию, которая может вызывать себя сколько угодно раз.Другими словами, если у нас есть функция, которая обращается к папке и перечисляет все ее файлы, эта функция может вызвать себя для доступа к подпапке и перечислить все файлы, найденные в ней. А затем вызовите себя снова, чтобы получить доступ к подпапке. Это сложно представить, но это работает.

Есть еще одна сложность, но мы с ней справимся через минуту. А пока давайте взглянем на сценарий, который перечисляет папку и все ее подпапки (хотя в первом примере не перечислены файлы, найденные в этих папках):

 strComputer = «.” Установите objWMIService = GetObject («winmgmts: \\» & strComputer & «\ root \ cimv2») 

strFolderName = «c: \ scripts»

Установить colSubfolders = objWMIService.ExecQuery _ («Ассоциаторы {Win32_Directory.Name = '» & strFolderName & «‘} »_ & «Где AssocClass = Win32_Subdirectory» _ & «ResultRole = PartComponent»)

для каждой objFolder в colSubfolders GetSubFolders strFolderName Следующие

Sub GetSubFolders (strFolderName) Установите colSubfolders2 = objWMIService.ExecQuery _ («Ассоциаторы {Win32_Directory.Name = '» & strFolderName & «‘} »_ & «Где AssocClass = Win32_Subdirectory» _ & «ResultRole = PartComponent»)

для каждого objFolder2 в colSubfolders2 strFolderName = objFolder2.Name Wscript.Echo objFolder2.Name GetSubFolders strFolderName следующий Конец подписки

Мы используем запрос AssociatorsOf для получения списка всех подпапок папки C: \ Scripts.В основном наш запрос говорит следующее: Получите мне список всех элементов, связанных с каталогом C: \ Scripts, при условии, что эти элементы являются подкаталогами (, где AssocClass = Win32_Subdirectory ).

Это дает нам список всех подпапок верхнего уровня: например, C: \ Scripts \ Folder1 и C: \ Scripts \ Folder2. То, что не дает нам , - это папки второго уровня; этот запрос не возвращает папку типа C: \ Scripts \ Folder1 \ SubfolderA. Чтобы получить доступ к этим подпапкам (подпапкам подпапки), нам нужно использовать рекурсивный запрос.Это то, что делает подпрограмма GetSubFolders . Мы передаем ему - одно за другим - имя каждой найденной подпапки (например, C: \ Scripts \ Folder1 и C: \ Scripts \ Folder2) и позволяем ему запрашивать каждую из этих подпапок для любых подпапок. Если - это любых подпапок, функция автоматически вызовет себя и будет искать любые подпапки.

Запутались? Не расстраивайся; ты не единственный. Но не беспокойтесь об этом; просто оставьте код как есть и попробуйте. Для поиска в другой папке (то есть в папке, отличной от C: \ Scripts) просто измените значение переменной, содержащей папку, в которой вы хотите выполнить поиск.Например, если вы хотите выполнить поиск в C: \ Windows, используйте эту строку кода:

 strFolderName = «c: \ windows» 

А как насчет файлов, находящихся во всех этих папках? Что ж, вот где вещи действительно усложняются. Это потому, что нам нужно сделать дополнительный запрос: мы используем один запрос, чтобы получить имена всех подпапок, а затем второй запрос, чтобы получить коллекцию файлов, найденных в каждой папке. Этот второй запрос выглядит примерно так:

 Set colFiles = objWMIService.ExecQuery _ («Выбрать * из CIM_DataFile, где Path =‘ »и strPath &« ‘») 

Это не так уж плохо, за исключением того, что в запросе, подобном этому, мы должны «экранировать» (удваивать) все, что находится в путях к файлам. Мы не можем использовать C: \ Scripts \ Folder1 \ в нашем запросе; вместо этого мы должны использовать C: \ Scripts \ Folder1 \ . Вы увидите код в скрипте, который заменяет каждый \ на \\; это как раз то, что нам нужно делать при ссылке на путь к файлу в таком запросе. Хорошая часть скрипта не делает ничего, кроме преобразования имен путей к папкам, чтобы их можно было использовать в запросе.

Вот и все предостережения. Вот сценарий, который все так долго хотели заполучить:

 strComputer = "." Установите objWMIService = GetObject («winmgmts: \\» & strComputer & «\ root \ cimv2») 

strFolderName = «c: \ scripts»

Установить colSubfolders = objWMIService.ExecQuery _ («Ассоциаторы {Win32_Directory.Name = '» & strFolderName & «‘} »_ & «Где AssocClass = Win32_Subdirectory» _ & «ResultRole = PartComponent»)

Wscript.Эхо strFolderName

arrFolderPath = Разделить (strFolderName, «\») strNewPath = «» Для i = 1 в Ubound (arrFolderPath) strNewPath = strNewPath & «\\» & arrFolderPath (i) следующий strPath = strNewPath & «\\»

Установить colFiles = objWMIService.ExecQuery _ («Выбрать * из CIM_DataFile, где Path =‘ »& strPath &« ‘»)

для каждого objFile в colFiles Wscript.Echo objFile.Name Следующие

для каждой objFolder в colSubfolders GetSubFolders strFolderName Следующие

Sub GetSubFolders (strFolderName) Установите colSubfolders2 = objWMIService.ExecQuery _ («Ассоциаторы {Win32_Directory.Name = '» & strFolderName & «‘} »_ & «Где AssocClass = Win32_Subdirectory» _ & «ResultRole = PartComponent»)

для каждого objFolder2 в colSubfolders2 strFolderName = objFolder2.Name Wscript.Echo Wscript.Echo objFolder2.Name arrFolderPath = Разделить (strFolderName, «\») strNewPath = «» Для i = 1 в Ubound (arrFolderPath) strNewPath = strNewPath & «\\» & arrFolderPath (i) следующий strPath = strNewPath & «\\»

Установите colFiles = objWMIService.ExecQuery _ («Выбрать * из CIM_DataFile, где Path =‘ »& strPath &« ‘»)

для каждого objFile в colFiles Wscript.Echo objFile.Name Следующие

GetSubFolders strFolderName следующий Конец подписки

Мы говорили вам, что это было сложно. Но это работает. Этот сценарий привяжется к папке C: \ Scripts и отобразит имена всех найденных там файлов; затем сценарий получит список всех подпапок, находящихся в C: \ Scripts.Оттуда мы перебираем коллекцию подпапок, вызывая рекурсивную функцию GetSubFolders для каждой из них. Эта функция выведет список всех файлов, найденных во вложенной папке, а затем проверит, есть ли во вложенной папке какие-либо вложенные папки. Если это так, рекурсивная функция будет вызвана снова, и процесс будет повторяться, пока мы не дойдем до конца строки: пока мы не перечислим все файлы, найденные в C: \ Scripts и во всех его подпапках.

Завтра мы должны вернуться к легкому.Кто-нибудь хочет знать, как получить имя локального компьютера с помощью скрипта?


.

Вывод списка всех вложенных папок и файлов в каталоге с использованием php

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для команд Где разработчики и технологи делятся частными знаниями с коллегами
.

Как я могу получить список всех файлов в папке и ее подпапках?

Привет, сценарист! Как я могу использовать сценарий, чтобы показать мне все файлы в папке? И как я могу изменить этот сценарий, чтобы он показывал мне все файлы во всех подпапках этой папки?

- CS

Привет, CS. Вчера мы показали всем сценарий, который изменил все файлы в папке с чтения на чтение и запись. Мы также пообещали, что в сегодняшней колонке мы объясним, как нам вообще удалось получить список всех файлов в папке.Ваши вопросы - прекрасное начало этому объяснению.

Начнем с простого: скрипт, который просто перечисляет все файлы в папке. Этот сценарий возвращает имена всех файлов, найденных в папке C: \ Scripts:

 Set objFSO = CreateObject («Scripting.FileSystemObject») objStartFolder = «C: \ Scripts» 

Установить objFolder = objFSO.GetFolder (objStartFolder)

Установить colFiles = objFolder.Files Для каждого objFile в colFiles Wscript.Echo objFile.название следующий

Как видите, в этом нет ничего особенного. Мы создаем экземпляр FileSystemObject, а затем используем метод GetFolder для привязки к папке C: \ Scripts. Довольно просто. Если бы мы хотели выполнить привязку, скажем, к папке Windows, все, что нам нужно было бы сделать, это изменить путь соответствующим образом, что мы делаем, присваивая другое значение objStartFolder:

 objStartFolder = «C: \ Windows» 

После подключения к папке мы создаем ссылку на свойство Files с помощью этой команды:

 Set colFiles = objFolder.Файлы 

Это возвращает нам коллекцию, состоящую из всех файлов, найденных в папке. (Но - и это имеет важные последствия для вашего второго вопроса - эта коллекция не включает файлы, найденные в каких-либо подпапках C: \ Scripts.) На этом этапе остальное - детская игра: теперь мы можем использовать цикл For Each для выполнения цикла сбор файлов и - если мы захотим - сделать что-нибудь с каждым. Поскольку вы спросили, как получить список всех файлов в папке, все, что мы делаем, это выводим имя файла.Но мы могли сделать намного больше; например, мы могли бы сообщить о свойстве DateCreated или свойстве Size. Более полное изложение объекта FileSystemObject и того, как его использовать, можно найти в руководстве Script Runtime Primer в Руководстве по созданию сценариев Microsoft Windows 2000.

Другими словами, вернуть список всех файлов в папке тривиально. Получить обратно список всех файлов в папке плюс всех файлов в любых подпапках этой папки может быть немного сложнее.Для этого вам нужно использовать рекурсивный скрипт. Мы не будем здесь объяснять рекурсию; для получения дополнительных сведений ознакомьтесь с этой частью Microsoft Windows 2000 Scripting Guide . (Да, мы с по , кажется, довольно много продвигаем книгу сегодня, не так ли?) По сути, рекурсивная функция - это функция, которая может автоматически вызывать себя столько раз, сколько необходимо. Возможно, в этом нет особого смысла, но подумайте об этом так. Сценарий, который мы показали выше, перечисляет все файлы в папке и затем останавливается.Не имеет значения, есть ли в папке подпапки; сценарию все равно.

Рекурсивная функция, напротив, заботится о : она будет продолжать работать, пока не сделает все, что вы от нее просили, и даже больше. Рекурсивная функция выведет список всех файлов в папке, а затем проверит, есть ли в этой папке какие-либо подпапки. Предположим, он находит подпапки A и B. В этом случае функция вызовет себя и перечислит все файлы, найденные в подпапке A. А что, если в подпапке A есть подпапка C? Нет проблем: функция вызовет себя снова и выведет список всех файлов в подпапке C.Это будет продолжаться до тех пор, пока не перестанут быть найдены вложенные папки. В этот момент функция вернется в цикл и начнет работать через подпапку B. Кроме того, она будет должным образом продолжать работу, пока не пройдёт через каждую подпапку, подпапку и подпапку, и - ну, пока был указан каждый последний файл.

Звучит ужасно сложно, и это так. К счастью, VBScript скрывает от вас большую часть этой сложности. Эй, не могли бы мы надуть вас над чем-то подобным? Посмотрите, вот скрипт, который использует рекурсивную функцию - ShowSubFolders - для вывода списка всех файлов в папке C: \ Scripts и всех файлов, найденных в любых подпапках C: \ Scripts:

 Set objFSO = CreateObject («Scripting.FileSystemObject ») objStartFolder = «C: \ Scripts» 

Установить objFolder = objFSO.GetFolder (objStartFolder) Wscript.Echo objFolder.Path Установите colFiles = objFolder.Files Для каждого objFile в colFiles Wscript.Echo objFile.Name следующий Wscript.Echo

Показать подпапки objFSO.GetFolder (objStartFolder)

Sub ShowSubFolders (Папка) Для каждой подпапки в Folder.SubFolders Wscript.Echo Subfolder.Path Установите objFolder = objFSO.GetFolder (Subfolder.Path) Установите colFiles = objFolder.Файлы Для каждого objFile в colFiles Wscript.Echo objFile.Name следующий Wscript.Echo Подпапка ShowSubFolders следующий Конец подписки

Как видите, первая часть скрипта в точности такая же, как и та, которую мы видели раньше (за одним исключением: эта часть повторяет путь к папке, чтобы мы знали, в какую папку мы смотрим). После отображения всех файлов в C: \ Scripts он затем вызывает рекурсивную функцию ShowSubFolders. Затем эта функция начинает просмотр всех подпапок и сообщает обо всех найденных файлах.Вся эта «рекурсия» происходит автоматически; все, что вам нужно сделать, это просто сесть и посмотреть.

Если вы не совсем понимаете, что здесь происходит, не беспокойтесь об этом; требуется время, чтобы полностью понять, как работают рекурсивные функции. А пока просто скопируйте предыдущий сценарий и используйте его всякий раз, когда вам нужно что-то сделать со всеми файлами в папке и ее подпапках.


.

cmd - Как мне получить список папок и подпапок без файлов?

Переполнение стека
  1. Около
  2. Товары
  3. Для команд
  1. Переполнение стека Общественные вопросы и ответы
  2. Переполнение стека для
.

Смотрите также