Вывести в файл содержимое каталога

Обновлено: 07.07.2024

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

Если вам когда-нибудь понадобиться получить список всех файлов, то вы обнаружите пренеприятнейшую новость. Интерфейс проводника Windows не позволяет вам это сделать в простой и понятной форме. И вроде бы задача до безумия проста, и вроде перед глазами все необходимые файлы, но. Однако, это можно очень просто сделать с помощью командной строки (cmd). Кроме того, командная строка позволит вам отфильтровать только необходимые файлы, например, только mp3. В данном случае мы будем использовать специальную команду "dir". Скорее всего, опытным пользователям это команда хорошо знакома, поэтому статья будет для них не интересной. Но, для большинства обычных пользователей она окажется весьма полезной.

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

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

Выводим список файлов папки и ее подпапках на экран командной строки

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

  • Откройте командную строку в необходимой папке (см. предыдущую статью)
  • Введите "dir" (без кавычек) и нажмите Enter. Вы получите список файлов (см. картинку)
  • Если вам необходимо перечислить файлы во всех вложенных папках, то вместо "dir" используйте "dir /s" (вводить без кавычек)

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

Создаем текстовый файл со списком файлов в командной строке

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

Для того чтобы выведенный список сохранить в текстовый файл, используется специальный символ перенаправления потока ">" (без кавычек).

  • Откройте командную строку в необходимой папке.
  • Введите "dir > listmyfolder.txt" (без кавычек) и нажмите Enter. Весь список сохранится в файле "listmyfolder.txt".
  • Если вам необходимо так же сохранить файлы и из всех вложенных каталогов, то используйте команду "dir /s > listmyfolder.txt" (без кавычек)

Файл "listmyfolder.txt" будет создан в той же папке, в которой вы находитесь. Небольшой уточнение по поводу файла, вы можете называть его как вам будет угодно, задавать ему абсолютно любое расширение. Каких-то специальных ограничений нет, кроме тех, что требует система Windows к названиям файлов. Так же вы можете использовать полные пути, для сохранения списка в другом каталоге. Например, вы хотите сохранить файл на диске "F:" в каталоге "list". Для этого вам необходимо будет использовать такую команду "dir > F:\list\listmyfolder.txt" (без кавычек). Как видите ничего сложно нет.

Создаем текстовый файл со списком файлов определенного расширения в командной строке

Далеко не всегда вам необходимо получить все файлы в каталоге. Например, вы хотите получить только список фотографий или только музыки. Согласитесь, что вручную изменять полный список файлов - скучная и рутинная задача. Чтобы облегчить всем жизнь, командная строка поддерживает специальный символ *, с помощью которого можно составить так называемые регулярные выражения (порой их называют маской). Не стоит пугаться страшных слов, никаких сложных конструкций в варианте "/d+?[\.2345]?d+[\.]?mp3/$" вы не встретите. Далее мы приведем простые примеры, как вы можете получить списки всех ваших mp3 и jpg файлов, т.е. музыки и фотографий.

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

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

В файле "listmp3.txt" будет список всех ваших MP3-файлов.

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

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

В файле "listjpg.txt" будет список всех ваших фотографий в формате JPEG.

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

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

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

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

Предупреждение: Если вы не сильно разбираетесь в том, что именно делает команда, то настоятельно вам рекомендуем сперва прочитать о ее применении, хотя бы в поисковике. Неаккуратное и неправильное использование команд может привести к неприятным последствиям. Конечно, можно использовать образы диска перед тестами, но, согласитесь, что это сильно накладно.

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

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

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

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

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

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

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

  1. Перейдите в ту папку, список файлов из которой вы хотели бы получить.
  2. Теперь зажмите Shift на клавиатуре и нажмите правой кнопкой мыши по пустому месту в окне «Проводника».
  3. Должно появится контекстное меню, где требуется выбрать вариант «Запуск командной строки» или «Открыть окно команд здесь». В случае с последними версиями Windows 10 такого пункта может не быть. Вместо этого нужно нажать на «Запустить окно PowerShell здесь». PowerShell – это новый аналог «Командной строки», который Майкрософт активно внедряет в последние версии Windows 10. По сути отличий в функционале нет никаких.

Открытие командной строки через контекстное меню

  • dir /b>spisok.txt Данная команда сохраняет только имена файлов в файл spisok.txt. Вы можете вместо него указать любое другое название, какое вам будет удобно, но учтите, что оно не должно содержать кириллических символов;
  • dir /s>spisok.txt Сохраняет не только имена файлов, содержащихся в папке, но и имена папок и подпапок, которые могут быть расположена в основной папке.

Ввод команды на создание списка файлов из командной строки

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

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

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

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

Создание текстового документа

echo %date% %time% >spisok.txt

Написание алгоритма для BAT-файла

Сохранение текстового документа как

Сохранение текстового файла как BAT-файла

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

Вариант 3: DirLister

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

  1. Перейдите на официальный сайт разработчика и скачайте архив с программой.
  2. Распакуйте архив, вытащив от туда исполняемый EXE-файл.
  3. Запустите его.

Работа с DirLister

Вариант 4: Total Commander

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

  1. В окне Total Commander откройте нужную папку.
  2. В верхнем меню нажмите на пункт «Выделение». Появится контекстное меню, где нужно нажать на вариант «Выделить всё».
  3. Затем в этом же меню выберите пункт «Копировать имена файлов в буфер обмена».

Окно Total-Commander

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

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

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

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

Открытие списка файлов через браузер

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


Что ты написал я не понял, но libastral.so выдал следующую строку:

Пошел бы ты троллить куда-нибудь в другое место, друг недалекий!


Хочу команду пихнуть в сш-скрипт и его пускать.
А можно как-то сделать так, чтобы не задавать путь до диры, а автоматом выводить содержимое той диры, где скрипт будет лежать?




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

Если только текущей директории, то ls. Если сложнее что-то, то используй find. По умолчаниюю они используют текущую директорию (но для старых версий find нужно указывать).


Приведите, пожалуйста, пример

Для вывода содержимого того каталога, где лежит скрипт

Для вывода содержимого того каталога, из которого запущен

Если это не подходит, то сформулируй задачу полностью.


Вроде то, что надо. Скрытые файлы выведет?


Whatever you want:

Вроде то, что надо. Скрытые файлы выведет?

Исходя из вышесказанного ― создай скрытый файл и проверь. Нахера об этом на форуме спрашивать, когда проверить дело пары секунд?


Блин, выводит лишнее. Я положил этот код в файл 1.sh, сделал исполняемым, запустил-получил, что выводит лишнее-не только тот каталог, в котором лежит скрипт


вывело еще и вышележащую папку, вот в чем проблема.


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


Вроде все ок. Но буду тестировать.

Ты еще не видел вывод команды tree — ваще жесть и улет!


гм. Создал в паке новая папка 1, новая пака 2, новая пака 3. В выводе не все есть. не все эти новые папки..


В общем - ни одного работающего как надо решения.



ни одного работающего как надо решения.

man ls
а не наугад тыкай


Делаю 2 дела сразу, вот и никак не соображу. Пробую разное и напишу, когда норм. будет. В маны то заглядываю.


флаги к ls сам добавь какие надо

amorpher ★★★★★ ( 26.03.17 17:57:20 )
Последнее исправление: amorpher 26.03.17 17:58:44 (всего исправлений: 2)



cd $PWD && ls > /куда/надо/list


Вроде не захватывает ничего выше по дереву.По идее-пойдет.Но надо погонять-мало ли..


То, что надо.
Но пока не буду ставить проблему как решенную - вдруг таки есть что-то проблемное в работе команды, что я не вижу.


amorpher ★★★★★ ( 26.03.17 18:52:18 )
Последнее исправление: amorpher 26.03.17 18:57:09 (всего исправлений: 1)


А в чеv разница? напишите коротко -в гугле забанили :-).
Преодолел багу - команда дописывала результаты в файл, а предыдущее не терла. Теперь трет:


на опеннет дали же ссылку, какой ещё тебе гугл?

amorpher ★★★★★ ( 26.03.17 18:59:52 )
Последнее исправление: amorpher 26.03.17 19:02:30 (всего исправлений: 1)


По идее - лучше указать, что файл сохраняется в папку, где я стартую. Что и сделано.


За руководство спасибо, сохраню.


Уяснил разницу между >> и > .Когда 2 -дописывает файл, когда 1 нет.
Тогда нет смысла дропать файл перед этим - если там не то, что надо -он перезапишется.
Тогда так:


Цель простая - есть дира в которой 100500 вложенных дир с файлом. Цель чтобы получить содержимое этих дир - какие файлы в них и поддиры и сформировать документ. Не руками а автоматом.


/root/ bash: tree: команда не найдена root@debian:


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


Tree — команда рекурсивного отображения структуры каталогов, выводящая перечень файлов с соответствующими глубине отступами и цветовой идентификацией при установленной переменной окружения LS_COLORS и выводе в терминал. По дефолту ее нет. Сойдет и ls. Вложенность порядка 2-х всего.



Таки бажно. Если запустить из /root/X/TMP/новая папка, то ничего не создает. Однако если запустить из /root/X/TMP/2222 -все ок.
То есть нельзя класть в паку с русским именем. Вот в чем дело. Баг ls?

Нет, $PWD нужно взять в ковычки, из-за пробела в имени директории не происходит переход и возвращается код ошибки, в результате команда ls не отрабатывает, т.к. конструкция команда1 && команда2 отработает только в случае если первая команда отработала без ошибок.

Получение списка файлов из папки в Windows

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

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

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

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

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

  1. Запустите командную строку от имени администратора.
  2. Введите cdx:\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 от имени администратора, если просто просмотреть в окне — достаточно простого запуска.

Сохранение списка файлов в текстовый файл в PowerSehll

  • 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 для печати содержимого папки

Вывод списка файлов на печать через контекстное меню

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

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

26.09.2015 в 12:27

26.09.2015 в 15:16

Ух-ты, отлично! Спасибо.

30.10.2015 в 10:08

17.11.2019 в 11:29

Только выдает то, что в самой папке, но без подпапок и прочего. А нужен полный список.

29.01.2016 в 20:04

30.01.2016 в 08:47

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

12.02.2018 в 12:48

27.02.2020 в 12:12

У меня не появилось в контекстном меню. Или нужна перезагрузка пк?

27.02.2020 в 13:06

После перезагрузки всё заработало. Большое вам спасибо)

25.01.2018 в 23:15

Самый простой способ. Не надо ничего устанавливать. Копируете адрес папки где находятся нужные вам файлы и вставляете его в адресную строку вашего браузера. Жмете Enter. Затем просто выделяете все и копируете. Затем можно вставить в excel, word или в блокнот и распечатать.

08.04.2020 в 04:44

20.12.2018 в 17:35

Командой dir можно сразу выводить результат в буфер обмена:

dir /a /b /o:gen | clip

10.01.2019 в 14:22

Только наверное не -Rescue а -Recurse

12.01.2019 в 15:43

02.05.2019 в 18:05

10.03.2020 в 10:12

После перепробования разных способов (соответствующие программы, вставка в браузер, какие-то командные строки) остановился на способе из первого комментария:

06.06.2020 в 13:48

Читайте также: