- Получение текстового файла с содержимым папки в командной строке
- Получаем список файлов с помощью Windows PowerShell
- Способ 1. Скелет из шкафа — функция ФАЙЛЫ
- Способ 2. Готовый макрос для ленивых
- Способ 3. Мощь и красота — надстройка Power Query
- Утилита Microsoft Fix it для печати содержимого папки
- Автоматическое создание списка файлов
- Вариант 1: «Командная строка»
- Вариант 2: Использование BAT-файла
- Вариант 3: DirLister
- Вариант 4: Total Commander
- Вариант 5: Браузер
Получение текстового файла с содержимым папки в командной строке
Во-первых, как сделать текстовый документ, содержащий список файлов в нужной папке, вручную.
- Запустите командную строку от имени администратора.
- Введите cd x:folder где x:folder — полный путь к папке, список файлов из которых нужно получить. Нажмите Ввод.
- Введите команду dir /a /-p /o:gen >files.txt (где files.txt — текстовый файл, содержащий список файлов). Нажмите Ввод.
- Если использовать команду с параметром /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, но в рамках задачи, описанной в данном руководстве, я думаю, их будет достаточно.
Способ 1. Скелет из шкафа — функция ФАЙЛЫ
В этом методе используется древняя функция ФАЙЛ (FILES), оставшаяся в Microsoft Excel с далеких девяностых. Вы не найдете эту функцию в общем списке функций, но для совместимости она все еще остается внутри движка Excel, и мы можем ее хорошо использовать.
Механизм следующий:
1. В любую ячейку списка (например, в А1) вводим путь к папке, список файлов из которой хотим получить.
Обратите внимание, что путь должен заканчиваться шаблоном со звездочками:
- *.* — любые файлы
- *.xlsx — книги Excel (только с расширением xlsx)
- *.xl* — все файлы Excel
- *отчет* — файлы, отзывающиеся слово отчет в названии
и так далее
2. Создамим именованный размещение с фабулы Формула — далее кнопка Диспетчер имен — Создать (Formulas — Names Manger — Create). В открывшемся окне введите любое имя без пробелов (например, My_files) и в поле диапазона выражение:
=ФАЙЛЫ(Список1!$A$1)
После нажатия OK будет создан именованный диапазон с именем My_files, где будет храниться список всех файлов из папки, указанной в A1. Остается только извлекать их извне.
3. Для извлечения имен отдельных файлов из созданной переменной используем функцию ИНДЕКС, которая в Excel извлекает данные из массива по их количеству:
Если лень делать отдельный столбец с нумерацией, то можно воспользоваться инструментом в виде функции СТРОКИ (СТРОКИ), которая будет автоматически подсчитывать количество заполненных строк с начала списка:
=ИНДЕКС(Мои_файлы; ЧСТРОК($B$3:B3))
Ну и скрыть ошибки #ССЯЛКА! в конце листка (если вы протигайте формулу с запаком) можно стандарной популярностью ЕСЛИОШИБКА (IFERROR):
=ЕСЛИОШИБКА(ИНДЕКС(Мои_файлы; ЧСТРОК($B$3:B3)); «»)
Важное печание: файлы фонция файлы формально относятся к макрофункциям, поэтому необходимо сохранить файл в формате, поддерживающем макросы (xlsm или xlsb).
Способ 2. Готовый макрос для ленивых
Если вы знакомы с макросами (не в смысле их программирования, а в смысле копирования и вставки готовых кодов VBA), то вам, вероятно, подойдет небольшой макрос, добавляющий новый чистый лист в текущую книгу и выводит на него список всех файлов с их параметрами из папки, указанной пользователем.
Чтобы добавить макрос в вашу книгу, нажмите комбинацию клавиш Alt+F11, или кнопку Visual Basic на вкладке Разработчик, в открывшемся окне редактора Visual Basic вставьте новый модуль через меню Вставка — Модуль и скопируйте текст этого макрос там:
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(«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. Ячейки пути (r, 3).Формула = ЭлементФайла.Размер ячеек(r, 4).Формула = ЭлементФайла.ДатаСоздания Ячейки(r, 5).Формула = ЭлементФайла.ДатаПоследнегоИзменения r = r + 1 X = ИсходнаяПапка.Путь Следующий ЭлементФайла ‘ вызываем продукт решелно для качевого вложенной папки If IncludeSubfolders Then Для каждой подпапки 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 Саб
Для запуска макроса нажмите комбинацию клавиш Alt+F8, либо кнопку Macros на вкладке Developer, выберите наш макрос FileList и нажмите кнопку Run. В диалоговом окне выберите любую папку или диск и — вуаля!
Если вы хотите, чтобы вместо пути к файлу в столбце B отображалась живая гиперссылка, замените 52-ю строку
Ячейки(r, 2).Формула = Элемент Файла.Путь
на
Cells(r, 2).Formula = «=HYPERLINK(«»» & FileItem.Path & «»»)»
Способ 3. Мощь и красота — надстройка Power Query
Power Query — это очень мощное и в то же время бесплатное дополнение для Excel от Microsoft, упрощающее многие задачи по загрузке и преобразованию данных. В нашей ситуации она тоже может помочь.
Если у вас Excel 2016 или новее, то Power Query уже встроен в Excel по умолчанию, поэтому просто на вкладке Данные выберите команду Создать запрос/Получить данные — Из файла — Из папки (Создать запрос/Получить данные — Из файла — Из папки). Если у вас Excel 2010-2013, то Power Query нужно будет скачать с сайта Microsoft и установить как отдельное дополнение, и оно появится в вашем Excel в виде отдельной вкладки Power Query. Там будет аналогичная кнопка Из файла — Из паппи (Из файла — Из папки).
В открывшемся окне необходимо указать папку, содержимое которой мы хотим получить. После нажатия OK Power Query развернет указанную папку и все подпапки и отобразит окно с предварительным просмотром результатов:
Если внешний вид списка вас устраивает, то можете смело нажимать кнопку Загрузить (Загрузить) внизу, чтобы заполнить эти данные в новом списке. Если вы хотите дополнительно обработать список (удалить лишние столбцы, выбрать только нужные файлы и т.д.), то вам нужно выбрать команду Change/Transform Data (Редактировать/Трансформировать данные).
Над окном Excel откроется окно редактора Power Query, где мы увидим список всех наших файлов в виде таблицы:
Возможны еще несколько вариантов:
- Если вам нужны только файлы определенного типа, то вы можете легко выбрать их с помощью фильтра столбца расширения:
- Аналогичным отрами фильтров по столбцам Дата доступа, Дата изменения или Дата создания можно отобрать файлы за нужный период (например, созданные только за поставчий месяц и т.п.):
- Если необходимо получить данные не из всех папок, то фильтруем по колонке Folder Path, чтобы оставить только те строки, где путь содержит/не содержит нужные имена папок:
- Там при необходимости можно отсортировать файлы по любому столбцу.
После того, как нужные файлы выбраны, можно смело удалять ненужные столбцы, щелкнув по заголовку столбца правой кнопкой мыши и выбрав команду Удалить столбец. Это, кстати, не повлияет на фильтрацию или сортировку нашего списка:
Если в дальнейшем планируется считать количество файлов в каждой папке (например, для контроля входящих запросов или подсчета статистики по запросам), то имеет смысл дополнительно сделать пару действий:
- Щелкните правой кнопкой мыши столбец «Путь к папке» и выберите команду Дублировать столбец (Duplicate Column).
- Выделите скопированный столбец и наложите Преобразование (Преобразовать) очень Разделить столбец — По разделителю (Разделить столбец — По разделителю)
Рядом с нашими данными мы получим еще несколько столбцов, где будут дублироваться названия вложенных папок — это пригодится чуть позже для подсчета статистики по сводной таблице:
Полученные столбцы можно переименовать (Диск, Папка1, Папка2 и т д.), просто щелкнув два раза по заголовку каждого из них.
И, наконец, когда список готов, его можно загрузить в список с помощью команды Главная — Закрыть и платья — Закрыть и платья в… (Главная — Закрыть и загрузить — Закрыть и загрузить в…):
И, само собой, теперь вы можете создать сводную таблицу (вкладка Вставка — Сводная таблица), чтобы легко подсчитать количество файлов в каждой папке:
В качестве дополнительного бонуса можно сделать еще одну колонку с функцией HYPERLINK (ГИПЕРССЫЛКА), которая будет создавать красивые стрелочные ссылки для мгновенного доступа к каждому файлу:
Мелочь, а приятно 🙂
И вдвойне приятно, что в дальнейшем при изменении содержимого исходной папки достаточно будет просто кликнуть мышкой по нашей таблице и выбрать команду Refresh (Обновить) — и Power Query выполнит всю цепочку изменений действия запрограммированы нами уже автоматически, отображая все изменения в папке.
Читайте также: 5 способов проверить, есть ли на вашем компьютере TPM
Утилита Microsoft Fix it для печати содержимого папки
На странице https://support.microsoft.com/ru-ru/kb/321379 утилита Microsoft Fix It добавлена в пункт «Печать списка каталогов» контекстного меню принтера.
Несмотря на то, что программа предназначена только для Windows XP, Vista и Windows 7, она успешно работала и в Windows 10, достаточно было запустить ее в режиме совместимости.
Кроме того, на этой же странице показана процедура ручного добавления команды вывода списка файлов в проводник, тогда как этот вариант для Windows 7 подходит и для Windows 8.1 и 10. /p в третьей строке и полностью убрал четвертую.
Автоматическое создание списка файлов
К счастью, функциональные возможности Windows и других программных решений позволяют создавать списки файлов в папках в автоматическом порядке. Эти списки можно без проблем скопировать в текстовый файл и при необходимости отредактировать.
Мы рассматриваем все доступные способы создания такого списка.
Вариант 1: «Командная строка»
Этот способ является стандартным и не требует от пользователя каких-либо специальных навыков, кроме базовых знаний «Командной строки». Итак, инструкция для этого варианта выглядит так:
- Зайдите в папку, список файлов из которой вы хотели бы получить.
- Теперь нажмите Shift на клавиатуре и кликните правой кнопкой мыши по пустому месту в окне «Проводника».
- Должно появиться контекстное меню, где нужно выбрать опцию «Запустить командную строку» или «Открыть окно команд здесь». В случае с последними версиями Windows 10 этот пункт может быть невозможен. Вместо этого вам нужно нажать «Запустить окно PowerShell здесь». PowerShell — это новый аналог «Командной строки», которую Microsoft активно внедряет в последних версиях Windows 10. Функциональных отличий нет.
Теперь вы можете ввести одну из следующих команд:
- dir /b>spisok.txt Данная программа предлагает только имена файлов в файле spisok.txt. Вместо него вы можете указать любое другое имя, удобное для вас, но учтите, что оно не должно содержать символов кириллицы;
- dir /s>spisok.txt Сохраняет не только имена файлов, содержащихся в папке, но и имена папок и подпапок, которые могут находиться в основной папке.
Для выбранной команды введите ее и нажмите Enter.
Через некоторое время в папке, в которую вы переместились на первом шаге, появится файл с названием spisok.txt или другим, если вы указали другое. Откройте его с помощью «Blocknote».
Всю информацию из него можно скопировать в документ Word, так как последний удобнее редактировать. Кроме того, если в папке находились файлы или другие папки, в названии которых присутствовали символы кириллицы, то в «Блокноте» такие могут отображаться некорректно, так как не поддерживаются нужные кодировки.
Вариант 2: Использование BAT-файла
Этот способ тоже не отличается какой-то сложностью, плюс позволяет почувствовать себя немного программистом. Суть в том, чтобы создать специальный файл с алгоритмом, который выводит список всех элементов папки в отдельный текстовый файл. Итак, рассмотрим инструкцию для этого варианта подробнее:
- Создайте текстовый файл в любом месте на компьютере. Для этого нажмите правую кнопку мыши и в меню выберите пункт «Создать». В открывшемся подменю выберите опцию «Текстовый файл».
Теперь откройте единственный созданный файл с помощью «Блокнота». Напишите следующий алгоритм:
чКП 1251
эхо %date% %time% >список.txt
каталог /b /d >>список.txt
После выполнения этого BAT-файла в папке, где он выполнялся, будет создан текстовый файл spisok.txt, где будет представлен список всех найденных в папке элементов. Но для начала нужно сохранить этот алгоритм в виде BAT-файла. Нажмите в верхнем меню на «Файл», а из контекстного меню выберите пункт «Сохранить как».
В поле «Имя файла» введите список.bat, а в поле «Тип файла» установите значение «Все файлы». Нажмите «Сохранить».
Теперь перенесите созданный BAT-файл в папку, из которой нужно получить список файлов. Запустите его приложением левой кнопки мыши. Появится окно, показывающее выполнение алгоритма, через несколько секунд окно исчезнет, а в папке появится файл spisok.txt, где будет представлен список всех элементов в папке.
Содержимое этого файла также можно перенести в текстовый документ MS Word. Однако в этом случае проблемы с кодировкой и некорректным отображением кириллических символов не наблюдается.
Вариант 3: DirLister
Эта бесплатная программа не требует установки на компьютер и с ее помощью вы можете создать список всех элементов в той или иной папке. Инструкция по его применению выглядит так:
- Зайдите на официальный сайт разработчика и скачайте архив с программой.
- Распакуйте архив, вытащив оттуда EXE-файл программы.
- Запустить его.
Обратите внимание на блок «Directory To Scan». Здесь будет адрес папки, которую нужно просканировать. Выберите его с помощью кнопки «Открыть». Откроется окно «Проводника» Windows, где нужно выбрать нужную папку и открыть ее. Теперь переходим к блоку ниже – «Выходной файл». Вот место для сохранения текстового файла со списком.
Нажмите на кнопку «Сохранить как», чтобы указать место для сохранения. В блоке «Тип файла» вы можете указать критерии сохранения файлов в списке. Например, будут сохранены только имена файлов с HTML, TXT и т д. Чтобы начать процедуру создания списка, нажмите на кнопку «Создать список», расположенную в нижней части окна. Через некоторое время вы увидите надпись «Все файлы обработаны корректно», что означает успешное завершение процедуры.
Вариант 4: Total Commander
Total Commander — популярный файловый менеджер, в котором пользователь может быстро получить и скопировать всю основную информацию о файлах, а также о содержимом папок. В этом случае вы можете получить список файлов в папке следующим образом:
- В окне Total Commander откройте нужную папку.
- В верхнем меню нажмите на пункт «Выделить». Появится контекстное меню, где нужно нажать на опцию «Выделить все».
- Затем в этом же меню выберите пункт «Копировать имена файлов в буфер обмена».
Создайте и откройте текстовый документ. Сделать это можно как с помощью простого блокнота, так и Word или других офисных программ. Вставьте содержимое буфера обмена в страницу с помощью комбинации клавиш Ctrl+V или вызовите контекстное меню и выберите там соответствующий пункт.
Вариант 5: Браузер
Во всех современных браузерах, будь то Опера, Гугл Хром, Яндекс и так далее, есть функция просмотра содержимого папок и некоторых файлов, находящихся на компьютере.
Инструкция для этого варианта выглядит так:
- открытие «Проводник». Выберите папку, которую вы хотите просмотреть в браузере, нажав левую кнопку мыши.
- Перетащите эту папку в любой удобный для вас браузер. В данном случае рассматривается версия с Оперой.
Здесь откроется папка со всем содержимым, которое будет представлено в виде списка. Выделите его и скопируйте с помощью комбинации клавиш Ctrl+C. Создайте любой текстовый документ и откройте его. Вставьте скопированный список.