Вывести в файл содержимое каталога
При работе на компьютере иногда возникает необходимость получить полный список файлов и папок в каталоге или даже целом томе. Понадобиться он может для самых разных целей, например, для каталогизации, для сравнения, для использования в какой-то базе данных и так далее. В большинстве случаев приходится иметь дело с большим числом объектов, поэтому нечего и думать, чтобы составить такой список вручную.
Если создание списка файлов вручную представляется едва ли возможным, то какая есть тому альтернатива, какие программные инструменты лучше всего подойдут для этих целей? Решений существует несколько, все они очень просты и удобны. Получить список файлов и папок можно с помощью обычной командной строки, с помощью PowerShell , штатного Проводника, любого браузера, а также с помощью сторонних специализированных утилит.
Получение текстового файла с содержимым папки в командной строке
Сначала о том, как сделать текстовый документ, содержащий список файлов в нужной папке, вручную.
- Запустите командную строку от имени администратора.
- Введите cdx:\folder\ где x:\folder\ — полный путь к папке, список файлов из которой нужно получить. Нажмите Enter.
- Введите команду dir /a /-p /o:gen >files.txt (где files.txt — текстовый файл, в котором будет сохранен список файлов). Нажмите Enter.
- Если использовать команду с параметром /b (dir /a /b /-p /o:gen >files.txt), то в полученном списке будет отсутствовать любая дополнительная информация о размерах файлов или дате создания — только список имен.
Готово. В результате будет создан текстовый файл, содержащий необходимую информацию. В команде выше, данный документ сохраняется в той же папке, список файлов из которой требуется получить. Можно также убрать вывод в текстовый файл, в этом случае список будет отображаться только в командной строке.
Кроме этого, для пользователей русскоязычной версии Windows следует учитывать то, что файл сохраняется в кодировке Windows 866, то есть в обычном блокноте вместо русских символов вы увидите иероглифы (но можно использовать альтернативный текстовый редактор для просмотра, например, Sublime Text).
Получаем список файлов и папок в командной строке
Для чтения содержимого каталогов в старой доброй командной строке предусмотрена команда dir , её то как раз мы и будем использовать. Итак, запускаем консоль CMD, командой cd Буква диска:/путь (если нужно перейти в другой диск, добавляем после cd ключ /d) переходим в нужное расположение и выполняем эти две команды:
Первая команда устанавливает кириллическую кодировку, вторая сохраняет список всех файлов, папок и вложенных в них объектов в текстовый лог на диске D.
Если нужно получить список только файлов (без вложенных каталогов) , достаточно использовать только ключ /b.
Примечание: в Windows 8.1 и 7 для быстрого перехода в папку в командной строке, зажмите Shift , кликните ПКМ по папке и выберите в контекстном меню опцию «Открыть окно команд».
Вариант 4: Total Commander
Total Commander – это популярный файловый менеджер, где пользователь может быстро получить и скопировать всю основную информацию о файлах, а также о содержимом папок. В данном случае получить список файлов, находящихся в папке, можно следующим образом:
- В окне Total Commander откройте нужную папку.
- В верхнем меню нажмите на пункт «Выделение». Появится контекстное меню, где нужно нажать на вариант «Выделить всё».
- Затем в этом же меню выберите пункт «Копировать имена файлов в буфер обмена».
Вывести список каталогов с помощью Windows PowerShell
Сохранить список каталогов с помощью PowerShell — простой и понятный процесс. Сначала Вам нужно открыть командную строку и перейти в каталог, содержимое которого Вы хотите узнать. Вы можете сделать это одним из двух способов.
Первый (и самый простой) — удерживая Shift щелкнуть папку правой кнопкой мыши и выбрать команду «Открыть окно PowerShell здесь» из контекстного меню. Если у Вас уже открыто окно PowerShell, Вы также можете просто перейти к папке с помощью команды cd.
В командной строке введите следующую команду (заменив «filename.txt» на свое имя файла), а затем нажмите Enter:
Windows создаст файл в том же каталоге под выбранным Вами именем.
Когда Вы откроете файл в текстовом редакторе, Вы увидите тот же список каталогов и файлов, который Вы бы увидели, если бы использовали только команду dir в командной строке.
Если Вы предпочитаете только список самих имен файлов, Вы можете изменить предыдущую команду с помощью переключателя /b:
Примечание: часть cmd /r этой команды указывает PowerShell выполнить команду в том виде, в котором она введена, а затем выйти. Если Вы используете командную строку, Вам не нужно добавлять часть cmd /r в эту команду, просто введите:
Эта команда даст Вам текстовый файл, который выглядит примерно так:
Сформировать список каталогов с помощью стороннего инструмента
Если Вы не против установить сторонний инструмент для выполнения работы, Directory List & Print упрощает задачу, позволяя создавать списки каталогов, которые Вы можете настраивать, сохранять в виде файлов или распечатывать.
Бесплатная версия Directory List & Print, скорее всего, сделает все, что Вам нужно, особенно если Вы просто ищете способ распечатать список файлов в отдельных каталогах. Если Вам нужно еще больше возможностей, версия Pro ($22) добавляет возможность включать огромное количество метаданных и свойств файлов Windows, указывать глубину рекурсии для подкаталогов, предоставляет дополнительные возможности сортировки и многое другое.
Directory List & Print доступен как в виде устанавливаемого, так и в виде портативного приложения, поэтому выберите то, что подходит Вам.
Использовать приложение довольно просто. На вкладке «Directory» выберите каталог, для которого Вы хотите вывести список содержимого. Вы можете выбрать иерархический вид папок или список избранных папок.
На вкладке «Columns» выберите столбцы, которые Вы хотите отображать, и нажмите кнопку «Добавить» (стрелка вправо), чтобы добавить эти столбцы. С помощью стрелок вверх и вниз слева отрегулируйте положение столбцов. И нажмите кнопку «Create/Update File List», чтобы увидеть список.
Выберите любые дополнительные параметры, которые Вы хотите, на вкладках «Display» и «Filter», а затем на вкладке «Output» выберите, как создать свой список. Вы можете распечатать его, скопировать в буфер обмена или сохранить в нескольких популярных форматах.
Еще одна особенно удобная функция Directory List & Print заключается в том, что Вы можете добавить параметр в контекстное меню для папок, что позволит Вам быстро открыть эту папку в приложении. Для этого Вы должны сначала запустить Directory List & Print от имени администратора. Щелкните правой кнопкой мыши файл .exe и выберите параметр «Запуск от имени администратора».
После загрузки приложения откройте меню «Setup», а затем выберите «Add to Directory Context Menu».
Теперь, чтобы создать список, просто щелкните папку правой кнопкой мыши и выберите команду «Open in Directory List + Print» из контекстного меню.
Вы также можете перетащить каталог из проводника Windows в окно программы, чтобы быстро создать список этого каталога.
Для определённых целей может потребоваться составить список файлов, содержащихся в папке. Если таковых немного, то задачу можно выполнить вручную без особых затруднений, но если в папке десятки, сотни или даже тысячи файлов, то пытаться составить их список вручную это бесполезная трата времени. Можно ли этот процесс как-то автоматизировать?
Утилита 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
Команда dir у меня не работает. Может, сборка такая, может, потому что корпоративная — Гейтс бы его знал!
После перепробования разных способов (соответствующие программы, вставка в браузер, какие-то командные строки) остановился на способе из первого комментария:
в папке CTRL+A — Shift+ПКМ — Копировать как путь — В блокноте CTRL+V, на а дальше обычная работа.
06.06.2020 в 13:48
На Винде 10 не получилось ни с командной строкой, ни с ПоверШелл. Я сделал так:
— в Тотал Коммандере (если вдруг кто не знаком, качайте на оф сайте — прога древняя, простая, бесплатная и наиполезнейшая) открываем нужную папку, кнопкой или в меню делаем «показать файлы без подкаталогов» (если файлов много, это может занять пару минут).
— если вам нужен просто только список, то кнтрл+а, шифт+пкм, «копировать как путь», и вставляете этот список в Ексель или куда вам там надо
— если нужен не только список, а упорядоченный по папкам, то Меню — конфигурация — настройки — наборы колонок — создать новый набор — добавить колонку — плюсик — в плагинах выбрать «Путь» — ок
— в окне с файлами сортируете по колонке «Путь», и копируете все пути файлов так, как было описано в пункте выше
Без учёта скачивания проги всё это займёт минут 10-20.
Получаем список файлов и папок в командной строке
Для чтения содержимого каталогов в старой доброй командной строке предусмотрена команда dir , её то как раз мы и будем использовать. Итак, запускаем консоль CMD, командой cd Буква диска:/путь (если нужно перейти в другой диск, добавляем после cd ключ /d) переходим в нужное расположение и выполняем эти две команды:
Первая команда устанавливает кириллическую кодировку, вторая сохраняет список всех файлов, папок и вложенных в них объектов в текстовый лог на диске D.
Если нужно получить список только файлов (без вложенных каталогов) , достаточно использовать только ключ /b.
Примечание: в Windows 8.1 и 7 для быстрого перехода в папку в командной строке, зажмите Shift , кликните ПКМ по папке и выберите в контекстном меню опцию «Открыть окно команд».
Вариант 1: «Командная строка»
Этот способ является стандартным и не требует от пользователя каких-либо особых умений, за исключением базового владения «Командной строкой». Итак, инструкция к данному варианту выглядит следующим образом:
- Перейдите в ту папку, список файлов из которой вы хотели бы получить.
- Теперь зажмите Shift на клавиатуре и нажмите правой кнопкой мыши по пустому месту в окне «Проводника».
- Должно появится контекстное меню, где требуется выбрать вариант «Запуск командной строки» или «Открыть окно команд здесь». В случае с последними версиями Windows 10 такого пункта может не быть. Вместо этого нужно нажать на «Запустить окно PowerShell здесь». PowerShell – это новый аналог «Командной строки», который Майкрософт активно внедряет в последние версии Windows 10. По сути отличий в функционале нет никаких.
- dir /b>spisok.txt Данная команда сохраняет только имена файлов в файл spisok.txt. Вы можете вместо него указать любое другое название, какое вам будет удобно, но учтите, что оно не должно содержать кириллических символов;
- dir /s>spisok.txt Сохраняет не только имена файлов, содержащихся в папке, но и имена папок и подпапок, которые могут быть расположена в основной папке.
Всю информацию из него можно скопировать в документ Word, так как последний удобнее редактировать. К тому же, если в папке содержались файлы или другие папки в названии которых присутствовали кириллические символы, то в «Блокноте» таковые могут отображаться некорректно, так как нужные кодировки не поддерживаются.
Список файлов и папок в PowerShell
В Windows 10 командная строка заменена консолью PowerShell , для получения списка файлов можете использовать её. Для примера выведем в файл содержимое папки Тест с её подкаталогами:
А можно и проще. Зажав Shift , кликаем по папке ПКМ, выбираем в меню «Открыть PowerShell здесь».
И выполняем в открывшемся окне консоли команду Get-Childitem -Recurse | Out-File D:\filelist.tхt .
Необходимость использования параметра -Path с указанием пути в данном случае отпадает.
Получаем список файлов с помощью 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, но в рамках описываемой в этом руководстве задачи, думаю, их будет достаточно.
Получение списка файлов с помощью DirLister
Для получения хорошо структурированного списка объектов файловой системы можно воспользоваться бесплатной портативной утилитой DirLister, скачав её с официального сайта:
Запустив утилиту, укажите в разделе «Directory To Scan» путь к сканируемому каталогу или диску, в разделе «Output File» выберите расположение для сохранения списка.
Здесь же можно задать параметры сканирования — выбрать формат, указать, нужно ли включать в список вложенные директории и скрытые объекты, задать поиск по маске. После нажатия кнопки «Make List» список будет сохранён в выбранном расположении.
Вариант 2: Использование BAT-файла
Данный способ тоже не отличается какой-либо сложностью, плюс даёт почувствовать себя немного программистом. Суть заключается в создании специального файла с алгоритмом, который выведет список всех элементов в папке в отдельный текстовый файл. Итак, рассмотрим инструкцию к этому варианту более подробно:
-
Создайте в любом месте на компьютере текстовый файл. Для этого нажмите правой кнопкой мыши и в меню выберите пункт «Создать». Из открывшегося подменю выберите вариант «Текстовый файл».
echo %date% %time% >spisok.txt
Содержимое данного файла также можно перенести в текстовый документ MS Word. Однако в этом случае проблем с кодировкой и неверным отображением кириллических символов не наблюдается.
Автоматическое создание списка файлов
К счастью, функционал Windows и других программных решений, позволяет создавать списки файлов в папках в автоматическом порядке. Данные списки можно потом будет без проблем скопировать в текстовый файл и редактировать по мере необходимости.
Рассмотрим все имеющиеся способы создания такого списка.
Вариант 3: DirLister
Данное бесплатное ПО не требуется установки на компьютер и с его помощью вы можете создать список всех элементов в той или иной папке. Инструкция по её использованию выглядит следующим образом:
- Перейдите на официальный сайт разработчика и скачайте архив с программой.
- Распакуйте архив, вытащив от туда исполняемый EXE-файл.
- Запустите его.
Вариант 5: Браузер
Во всех современных браузерах, будь то Opera, Google Chrome, Yandex и т.д., есть функция просмотра содержимого папок и некоторых файлов, расположенных на компьютере.
Инструкция к этому варианту выглядит следующим образом:
- Откройте «Проводник». Выберите при помощи щелчка левой кнопкой мыши ту папку, которую хотите просмотреть в браузере.
- Перетащите эту папку в любой удобный для вас браузер. В данном случае рассматривается вариант с Opera.
Это были все способы, позволяющие вывести список содержимых в папке файлов в отдельный текстовый документ.
Что ты написал я не понял, но libastral.so выдал следующую строку:
Пошел бы ты троллить куда-нибудь в другое место, друг недалекий!
Хочу команду пихнуть в сш-скрипт и его пускать.
А можно как-то сделать так, чтобы не задавать путь до диры, а автоматом выводить содержимое той диры, где скрипт будет лежать?
Вообще выводит содержимое файлов, а надо список дир и файлов, наверное-не так чуть написал.
Если только текущей директории, то ls. Если сложнее что-то, то используй find. По умолчаниюю они используют текущую директорию (но для старых версий find нужно указывать).
Приведите, пожалуйста, пример
Для вывода содержимого того каталога, где лежит скрипт
Для вывода содержимого того каталога, из которого запущен
Если это не подходит, то сформулируй задачу полностью.
Вроде то, что надо. Скрытые файлы выведет?
Whatever you want:
Вроде то, что надо. Скрытые файлы выведет?
В GNU/Linux скрытые файлы очень условны. Скрываются файлы, начинающиеся с точки, нет аналога Windows (аттрибут «скрытый»).
Исходя из вышесказанного ― создай скрытый файл и проверь. Нахера об этом на форуме спрашивать, когда проверить дело пары секунд?
Блин, выводит лишнее. Я положил этот код в файл 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
То, что надо.
Но пока не буду ставить проблему как решенную - вдруг таки есть что-то проблемное в работе команды, что я не вижу.
Так и неясна цель темы, что откуда и куда надо.
И разницу посмотри между этим «>>» и этим «>».
`dirname «$0»` через линки может не работать
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 вложенных дир с файлом. Цель чтобы получить содержимое этих дир - какие файлы в них и поддиры и сформировать документ. Не руками а автоматом.
Облом. Не хочу доставлять что-то, я хочу чтобы скрипт работал в системе из коробки.
Tree — команда рекурсивного отображения структуры каталогов, выводящая перечень файлов с соответствующими глубине отступами и цветовой идентификацией при установленной переменной окружения LS_COLORS и выводе в терминал. По дефолту ее нет. Сойдет и ls. Вложенность порядка 2-х всего.
«100500 вложенных дир» - оказывается вложенность небольшая, папок много, не туда посмотрел. А там где она большая- там список не нужен.
Таки бажно. Если запустить из /root/X/TMP/новая папка, то ничего не создает. Однако если запустить из /root/X/TMP/2222 -все ок.
То есть нельзя класть в паку с русским именем. Вот в чем дело. Баг ls?
Нет, $PWD нужно взять в ковычки, из-за пробела в имени директории не происходит переход и возвращается код ошибки, в результате команда ls не отрабатывает, т.к. конструкция команда1 && команда2 отработает только в случае если первая команда отработала без ошибок.
Когда ко мне обратились с вопросом о том, как быстро вывести список файлов в текстовый файл, я понял, что ответа я не знаю. Хотя задача, как оказалось, достаточно часто встречающаяся. Это может потребоваться для передачи списка файлов специалисту (для решения какой-то проблемы), самостоятельного ведения журнала содержимого папок и других целей.
Решено было устранить пробел и подготовить инструкцию на эту тему, в которой будет показано, как получить список файлов (и вложенных папок) в папке Windows средствами командной строки, а также о том, как автоматизировать этот процесс, если задача возникает часто.
Получение списка файлов или папок в Проводнике
Этот способ позволяет получить список либо файлов, либо папок в конкретном расположении. Заходим в целевую папку, выделяем в ней все файлы или папки, зажимаем Shift , кликаем правой кнопкой мыши и выбираем в меню опцию «Копировать как путь».
Пути и имена выделенных объектов будут переданы в буфер обмена, откуда вы уже сможете перенести их в текстовый файл.
Используем для получения списка файлов браузер
На худой конец для создания списка файлов и папок на диске можно воспользоваться любым браузером. Перетаскиваем папку или диск на новую вкладку браузера и получаем список имеющихся в ней файлов и каталогов.
Рекурсивно пройтись по всем вложенным каталогам, правда, не получится да и для копирования путей и имён файлов и переноса их в отдельный файл придется использовать Ctrl + C и Ctrl + V .
Иногда Вам может потребоваться распечатать или сохранить список файлов в каталоге. В Windows нет простого способа сделать это через интерфейс, но можно сделать с помощью командной строки.
Распечатать или сохранить список каталогов не так уж сложно. Мы собираемся показать Вам быстрый способ сделать это из командной строки (или PowerShell) и стороннего инструмента, который упрощает работу, если Вам приходится делать это часто.
Читайте также: