Перерахуйте всі файли в усіх підтеках


Відповіді:


35

Список всіх файлів рекурсивно

C: \ & gt; dir / s

Щоб зберегти їх у файл

C: \ & gt; dir / s /b>filelist.txt

Переглядайте їх за раз

C: \ & gt; dir / s | більше


3
Ну, добре ... Це теж буде працювати. Просто цікаво, чому ніхто не використовує стандартну функцію пошуку Windows для цього. :-)
Wim ten Brink

1
@Workshop Alex: Тому що 1) рекурсивний dir трохи швидше, якщо не потрібно перевіряти будь-які умови; 2) він дозволяє зберігати імена в файл.
grawity

4
@WimtenBrink: і як ви збираєтеся відправляти вікна пошуку іншому користувачеві?
adolf garlic

1
Вам не потрібно перекачувати більше, вам просто потрібний перемикач / p (робить те ж саме)
Keltari

3
Оскільки питання не згадує каталоги, воно має бути dir /a-d /b /s.
jiggunjer

14

Спробуйте дерево / f. Це повинно вивести всю структуру.


1
Що буде відображатися як дерево, а не список.
Joey

Ви не думаєте, що ОП вважатиме цей результат списком?
hyperslug

2
Я думав, що команда дерева матиме найкраще форматування, що дозволяє чітко бачити рівень підпапок.
alex

вона має кращу структуру. його можна зберегти як текстовий файл або html файл?
xypha

спробував tree /f>filelist.txt & amp; це спрацювало.
xypha

5

Ти отримаєш UnixUtils на sourceforge , що дасть вам find.exe.

Після цього можна виконати наступне для переліку всіх файлів із шляхами папок.

cd Path\to\folder
find.exe . -type f

Є й інші форми команди Unix, які можуть бути корисними для вас.
Вихід є більш пошуковим у порівнянні з рідним dir і tree команд.


Оновлено за допомогою вводу з Johannes.
В cmd.exe оболонки

dir /b /s

добре працює для рекурсивного переліку у форматі "Вдови",
(тому ви бачите C:\ "і зворотні риски" \ ').
Я повністю пропустив \bNifle Відповідь! (+1 для цього зараз).


Немає необхідності встановлювати тут щось, як dir це цілком здатне.
Joey

1
@Johannes, ви порівняли Unix find вихід з DOS dir /s або tree в цьому відношенні?
nik

1
Ви коли-небудь використовували dir /b? :-)
Joey

@Johannes, насправді я не пам'ятаю, чи зробив я це в DOS 6.22 дня. Отримав більше звик find і з Cygwin, ніколи не пробував команди команди dos (насправді знадобився момент, щоб відкрити cmd оболонки і уникнути /usr/bin/dir щоб спробувати цей варіант. Але вона працює; раді дізнатися про це :-)
nik

2

Чому так складно? Натисніть Windowskey + F, щоб запустити "Пошук файлів" у Windows. У лівій частині вікна перейдіть до "Look in" і виберіть опцію внизу під назвою "Browse ...". Виберіть папку (під), в якій потрібно виконати пошук. Введіть "*" (без лапок) у вікні редагування "Все або частину імені файлу" і почніть пошук. Отримайте трохи кави, коли ви шукаєте на великому диску з великою кількістю даних, і просто чекайте, поки ця пошукова система на основі дослідника покаже вам повний список. Ви можете шукати його, відкривати файли безпосередньо і навіть обмежувати пошук, якщо це необхідно.

Чому люди забувають цю поведінку за промовчанням Windows?


3
тому що це не 1337? :-)
Natrium

13
Наприклад, у текстовому файлі вам буде важко отримати це.
Joey

Правда, але чому хтось хоче його в текстовому файлі? :-)
Wim ten Brink

2
Зверніть увагу, що це буде (принаймні на Win XP) пошук всі файли ZIP у всіх підпапках. Що буде жахливо повільним. Котрий певно не що ви захочете. Який не можна легко вимкнути. Якщо ZIP-файлів немає, я погоджуюся, що це найкращий підхід.
Martin

@Wim: Ваш 5-ступінчастий процес (Win + F, Огляд, Підпапка, *, Пуск) набагато повільніше, ніж просто набрати "dir / s" (для друкарки, яка набирає понад 100 слів на хвилину, і використовується для виконання речей у командному рядку, так що він часто відкривається). Крім того, процес, про який ви згадуєте, змінив версії Windows / Windows, тоді як "dir / s" був послідовним. Крім того, ваш процес вимагає натискання клавіші Win + F, що не завжди легко. Іноді, навіть якщо клавіатура має клавішу Windows, цей ключ може бути більш складним для використання, наприклад, у сценаріях віддаленого доступу, де ключ може використовуватися локальним комп'ютером замість віддаленого
TOOGAM

1

Я вважаю, що цей пакетний файл є корисним

DragDropListFile.bat

@ECHO OFF
SET targetPath="%~1"
SET ToolPath=%~dp0

dir %targetPath% /b /s /a-d > "%ToolPath%list.txt"

Використання: Просто перетягніть папку і скиньте її на файл DragDropListFile.bat, після чого створюється файл з назвою list.txt, що містить потрібне.

Якщо вам не подобається перетягувати & amp; падіння, спробуйте цей пакетний файл

ListFile.bat

ECHO OFF

SET crtPath=%~dp0

dir "%crtPath%" /b /s /a-d > list.txt

Використання: помістіть файл ListFile.bat в папку, яку ви бажаєте перерахувати, потім запустіть файл ListFile.bat, після чого буде створено файл list.txt, який містить те, що ви хочете.


0

dir /s /w >files.txt ви отримаєте більшу частину шляху там. Він збереже розширення. Потім відкрийте files.txt у текстовому редакторі

  • відсортуйте всі рядки і видаліть зайві
  • або видалити їх з операцією пошуку та заміни або 2.
    • Регістр ^ +\d+ File.+\r\n\r\n Dir.+\r\n\r\n позбулися прогалин і деталей папок між окремими списками файлів папок для мене в Notepad ++.
  • Потім просто обріжте верхню частину & ​​amp; хвіст текстового файлу.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.