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

Быстрее всего задача решается одной командой в командной строке: откройте нужную папку в Проводнике, введите в адресной строке cmd и выполните dir /b > list.txt — рядом появится файл list.txt с именами всех объектов каталога. Это работает в любой актуальной версии Windows без установки сторонних программ.

Ниже разберём несколько способов: через командную строку, PowerShell, пакетный файл и файловые менеджеры. У каждого метода свои особенности — где-то проще получить только имена, где-то удобнее выгрузить размеры, даты изменения и структуру вложенных подпапок.

Список файлов через командную строку (cmd)

Классический инструмент — команда dir. Самый быстрый способ открыть консоль сразу в нужной папке: перейдите в каталог в Проводнике, кликните по адресной строке, введите cmd и нажмите Enter. Командная строка запустится уже с текущим путём, и вручную прописывать его не придётся.

Теперь выполните команду:

dir /b > list.txt

Ключ /b включает «голый» формат вывода — только имена файлов без служебных колонок. Оператор > перенаправляет результат не на экран, а в файл list.txt, который создаётся в той же папке. Если нужно включить и содержимое вложенных каталогов, добавьте ключ /s:

dir /b /s > list.txt

Учтите: с ключом /s имена выводятся с полными путями, а сам файл list.txt тоже попадёт в выгрузку, так как создаётся до завершения команды. Чтобы этого избежать, сохраняйте результат в другую папку, например dir /b > C:\Temp\list.txt.

☑️ Выгрузка списка через cmd

Выполнено: 0 / 5

Получение списка через PowerShell

PowerShell даёт больше контроля над форматом выгрузки. Открыть его можно так же, как cmd, — введите powershell в адресной строке Проводника. Базовая команда выглядит так:

Get-ChildItem | Select-Object Name | Out-File list.txt

Здесь Get-ChildItem получает содержимое папки, Select-Object Name оставляет только имена, а Out-File записывает их в текстовый файл. Если нужны и вложенные каталоги, добавьте параметр -Recurse:

Get-ChildItem -Recurse -File | Select-Object FullName | Out-File list.txt

Ключ -File исключает папки из выгрузки — останутся только файлы. Для выгрузки в формате CSV с размерами и датами удобна связка с Export-Csv: такой файл потом легко открывается в Excel для сортировки и фильтрации.

⚠️ Внимание: при выводе через Out-File длинные имена могут обрезаться по ширине консоли. Чтобы этого не произошло, укажите параметр -Width с большим значением, например Out-File list.txt -Width 300.
📊 Каким способом вы выгружаете список файлов?
Командная строка (cmd)
PowerShell
Файловый менеджер (Total Commander и др.)
Пока не пробовал, ищу подходящий вариант

Автоматизация через bat-файл

Если выгружать список нужно регулярно — например, еженедельно фиксировать содержимое рабочего каталога, — удобнее создать пакетный файл. Откройте Блокнот, вставьте команду и сохраните документ с расширением .bat, выбрав тип файла «Все файлы».

@echo off

cd /d "%~dp0"

dir /b /s > spisok_%date:~0,2%-%date:~3,2%-%date:~6,4%.txt

Строка cd /d "%~dp0" переводит скрипт в папку, где лежит сам bat-файл, — так его можно просто копировать в любой каталог и запускать двойным кликом. Имя итогового файла в примере дополняется текущей датой, чтобы новые выгрузки не затирали старые.

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

Выгрузка через файловые менеджеры

Не всем удобно работать с консолью. Файловые менеджеры вроде Total Commander позволяют скопировать имена выделенных файлов в буфер обмена: выделите объекты и воспользуйтесь соответствующей командой в меню «Выделение» (в разных версиях она может называться «Копировать имена в буфер» или аналогично). Затем вставьте результат в Блокнот и сохраните как .txt.

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

  • 📋 Total Commander — копирование имён и путей выделенных файлов в буфер обмена.
  • 🗂️ Double Commander — аналогичная функция, бесплатная альтернатива.
  • 🖱️ Проводник Windows — зажмите Shift, кликните правой кнопкой и выберите «Копировать как путь».

Способ с «Копировать как путь» — самый простой вариант без консоли вообще: выделяете файлы в Проводнике, копируете пути и вставляете в текстовый редактор. Минус — в список попадают полные пути в кавычках, которые иногда приходится чистить вручную.

Фильтрация, сортировка и формат вывода

Редко нужен список «как есть» — чаще требуется отфильтровать файлы по типу или отсортировать результат. В cmd для этого служат дополнительные ключи команды dir и подстановочные знаки:

dir /b *.pdf > pdf_list.txt

dir /b /o:n > sorted.txt

dir /b /a:-d > only_files.txt

Первая команда выгружает только PDF-документы, вторая сортирует вывод по имени (/o:n; по дате — /o:d, по размеру — /o:s), третья исключает папки из списка. В PowerShell фильтрация делается через параметр -Filter или Where-Object.

КомандаЧто делаетКогда использовать
dir /b > list.txtТолько имена файлов текущей папкиБыстрая простая выгрузка
dir /b /s > list.txtПолные пути с учётом подпапокКаталогизация вложенной структуры
dir /b *.jpg > list.txtФильтр по расширениюСписок файлов одного типа
tree /f > tree.txtДерево каталогов с файламиНаглядная структура папки
Get-ChildItem -Recurse -FileГибкая выгрузка через PowerShellЭкспорт в CSV, сложные фильтры

Команда tree /f > tree.txt — единственный встроенный способ получить не плоский список, а наглядное дерево папок с отступами, что удобно для документирования структуры проекта или архива.

Кодировка и проблемы с кириллицей

Частая неприятность: открываешь готовый list.txt, а вместо русских имён — кракозябры. Причина в том, что cmd по умолчанию работает в кодировке OEM (обычно CP866), а Блокнот и другие редакторы ожидают ANSI или UTF-8.

Решений несколько. Перед командой dir выполните chcp 65001 — консоль переключится на UTF-8, и выгрузка сохранится в этой кодировке. Альтернатива — открыть готовый файл в редакторе вроде Notepad++ и вручную выбрать правильную кодировку при открытии либо перекодировать документ.

⚠️ Внимание: PowerShell 5.1 по умолчанию сохраняет файлы через Out-File в UTF-16 LE, из-за чего некоторые программы отображают текст с пробелами между символами. Укажите кодировку явно: Out-File list.txt -Encoding utf8.

Если в именах файлов встречаются спецсимволы или очень длинные пути, консольные методы всё равно справляются, но проверяйте результат на полноту: откройте текстовый файл и сравните количество строк с количеством объектов в папке.

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

В cmd выполните: dir /b /a:-d | find /c /v "" — команда выведет число файлов без учёта подпапок. В PowerShell аналог: (Get-ChildItem -File).Count

Типичные ошибки и их решение

Разберём ситуации, с которыми чаще всего сталкиваются при выгрузке списков. Первая — ошибка «Отказано в доступе»: она возникает, если папка системная или у учётной записи нет прав на запись в неё. Запустите консоль от имени администратора или перенаправьте вывод в каталог, куда запись разрешена, например в «Документы».

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

  • 🚫 «Отказано в доступе» — запустите консоль от имени администратора или сохраняйте файл в другую папку.
  • 📄 Пустой list.txt — проверьте текущий каталог командой cd без параметров.
  • 🔤 Кракозябры вместо кириллицы — выполните chcp 65001 перед выгрузкой.
  • 📁 В списке лишний list.txt — сохраняйте результат вне выгружаемой папки.
⚠️ Внимание: оператор > полностью перезаписывает файл. Если нужно дописать новые данные к существующему списку, используйте двойной оператор >>, иначе прежнее содержимое будет потеряно.

Часто задаваемые вопросы

Как получить список файлов без полных путей, только имена?

Используйте dir /b > list.txt без ключа /s — выводятся только имена объектов текущей папки. В PowerShell аналог: Get-ChildItem -Name | Out-File list.txt.

Можно ли выгрузить список вместе с размерами файлов?

Да. В cmd уберите ключ /b — тогда в файл попадут даты и размеры в табличном виде, но вместе со служебными строками. Аккуратнее это делает PowerShell: Get-ChildItem | Select-Object Name, Length | Export-Csv list.csv -NoTypeInformation — результат удобно открыть в Excel.

Как включить в список содержимое всех подпапок?

Добавьте ключ /s к команде dir: dir /b /s > list.txt. Имена будут выведены с полными путями. В PowerShell используйте параметр -Recurse.

Почему в текстовом файле вместо русских букв непонятные символы?

Командная строка сохраняет вывод в кодировке OEM, а редакторы открывают файл в другой. Перед выгрузкой выполните chcp 65001 для перехода на UTF-8 либо перекодируйте готовый файл в Notepad++.

Есть ли способ без командной строки вообще?

Да: выделите файлы в Проводнике, зажмите Shift, кликните правой кнопкой мыши и выберите «Копировать как путь», затем вставьте результат в Блокнот. Также подойдут файловые менеджеры вроде Total Commander с функцией копирования имён в буфер обмена.