Рекурсивный список каталогов в DOS

201

Как нам добиться рекурсивного перечисления каталогов в DOS?

Я ищу команду или скрипт в DOS, который может дать мне рекурсивный список каталогов, похожий на ls -Rкоманду в Unix.

StarDotStar
источник

Ответы:

361

Ты можешь использовать:

dir /s

Если вам нужен список без всей информации верхнего / нижнего колонтитула, попробуйте это:

dir /s /b

(Конечно, это будет работать для DOS 6 и более поздних версий; возможно, до этого работало, но я не могу вспомнить.)

Майкл Тодд
источник
7
+1 очень удобно. Если в ваших каталогах содержится много файлов, эта команда будет прокручивать их на экране слишком быстро для чтения. Я думаю, что лучше всего направить вывод этой команды в текстовый файл, который вы можете прочитать на своей собственной скорости. Например (при условии, что каталог c: \ temp создан): dir C: \ / s> C: \ temp \ CDirectoryListing.txt
Стивен Магана-Зук,
Вы, сэр, действительно потрясающе! Оно работало завораживающе! Я использовал его на работе (где мы вынуждены иметь Windows-машины) с gVIM! Действительно, действительно хорошо! Вы спасли меня от головной боли!
Валиалу
По какой-то причине при использовании / S и / B он печатает полный абсолютный путь с папкой C: \, это можно предотвратить? Я хочу только относительное имя файла.
lama12345
2
Да, отлично работает с поиском / заменить "C: / folder" и заменить на "".
lama12345
22
Просто добавить: tree /fдает приятное отображение для глаз :-)
Арун
25

dir /s /b /a:d>output.txt перенесет его в текстовый файл

трибрахий
источник
23

Вы можете получить параметры, которые вы запрашиваете, набрав:

dir /?

Для полного списка попробуйте:

dir /s /b /a:d
Fortius
источник
3

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

DIR /S | FINDSTR "\-" | FINDSTR /VI DIR

Обычный вывод содержит записи, подобные этим:

28-Aug-14  05:14 PM    <DIR>          .
28-Aug-14  05:14 PM    <DIR>          ..

Вы можете удалить их, используя различные опции фильтрации, предлагаемые FINDSTR. Вы также можете использовать отличный unxutils, но он по умолчанию преобразует вывод в UNIX, поэтому вы больше не получаете CR + LF; FINDSTR предлагает лучший вариант Windows.

Зейнаб Куреши
источник
Ницца! Мое дополнительное требование - подсчитать все строки, что и сделано dir /s /b | find /v /c "".
Доми
3

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

> dir . /s /b sortorder:N
Любовь и мир - Джо Кодсвелл
источник