Wyświetl wszystkie pliki we wszystkich podfolderach

33

Czy w systemie Windows jest jakiś sposób na uzyskanie listy wszystkich plików w folderze, w tym wszystkich plików we wszystkich podfolderach?

Edward Wong Hau Pepelu Tivrusk
źródło

Odpowiedzi:

37

Wyświetl wszystkie pliki rekurencyjnie

C: \> reż./s

Aby zapisać je w pliku

C: \> katalog / s /b> lista plików.txt

Wyświetlaj stronę jednocześnie

C: \> katalog / s | więcej

Nifle
źródło
3
Cóż, ok ... To też zadziała. Zastanawiam się, dlaczego nikt nie używa do tego standardowej funkcji wyszukiwania systemu Windows. :-)
Wim ten Brink
2
@ Workshop Alex: Ponieważ 1) rekursywny dirjest tylko trochę szybszy, jeśli nie musi sprawdzać żadnych warunków; 2) pozwala zapisać nazwy w pliku.
grawity
4
@WimtenBrink: i jak zamierzasz wysłać wyszukiwanie systemu Windows do innego użytkownika?
czosnek Adolf
1
Nie musisz
przesyłać
3
Ponieważ pytanie nie wspomina o katalogach, powinno być dir /a-d /b /s.
jiggunjer
15

Spróbuj drzewo / f. To powinno wygenerować całą strukturę.

alex
źródło
1
Który będzie wyświetlany jako drzewo, a nie lista.
Joey,
Nie sądzisz, że OP uznałby ten wynik za listę?
hyperslug
2
Myślałem, że polecenie drzewa będzie miało najlepsze formatowanie, pozwalając ci wyraźnie zobaczyć poziom podfolderów.
alex
ma najlepszą strukturę. czy można go zapisać jako plik tekstowy lub plik HTML?
xypha
próbowałem tree /f>filelist.txti działało.
xypha
5

Otrzymasz UnixUtils w sourceforge , który ci da find.exe.

Następnie możesz wykonać następujące czynności, aby wyświetlić listę wszystkich plików ze ścieżkami folderów.

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

Istnieją inne formy polecenia Unix, które mogą być dla ciebie przydatne.
Dane wyjściowe są łatwiejsze do wyszukiwania w porównaniu z natywnymi diri treepoleceniami.


Zaktualizowano przy pomocy danych wejściowych z Johannes.
W cmd.exeskorupce

dir /b /s

działa całkiem dobrze w przypadku rekursywnego wpisu w formacie Wdowy
(więc widać „ C:\” i odwrotne ukośniki, „ \”).
Całkowicie przegapiłem odpowiedź „ \b” w Nifle! (+1 za to teraz).

nik
źródło
Nie musisz niczego tutaj instalować, ponieważ dirjest do tego doskonale.
Joey,
1
@Johannes, czy porównywałeś findwyjście Unixa z DOS-em, dir /sczy treew tym przypadku?
nik
1
Czy kiedykolwiek używałeś dir /b? :-)
Joey
@Johannes, właściwie nie pamiętam, czy zrobiłem to w DOS 6.22 dni. Przyzwyczaiłem się coraz bardziej do findCygwina i nigdy nie próbowałem poleceń dos (właściwie zajęło mi chwilę otwarcie cmdpowłoki i unikanie /usr/bin/dirwypróbowania tej opcji. Ale to działa; cieszę się, że się dowiedziałem:-)
nik
2

Dlaczego tak złożony? Naciśnij Windowskey + F, aby rozpocząć „Wyszukiwanie plików” w systemie Windows. Po lewej stronie przejdź do „Szukaj w” i wybierz na dole opcję „Przeglądaj ...”. Wybierz (pod) folder, w którym chcesz wyszukać. Wpisz „*” (bez cudzysłowów) w polu edycji „Cała nazwa pliku lub jej część” i rozpocznij wyszukiwanie. Zrób kawę, gdy szukasz na dużym dysku z dużą ilością danych i poczekaj, aż ta wyszukiwarka oparta na eksploratorze wyświetli pełną listę. Możesz go wyszukiwać, otwierać pliki bezpośrednio, a nawet zawęzić wyszukiwanie, jeśli zajdzie taka potrzeba.

Dlaczego ludzie zapominają o tym domyślnym sposobie wyszukiwania w systemie Windows?

Wim ten Brink
źródło
3
bo to nie jest 1337? :-)
Natrium
13
Trudno byłoby na przykład uzyskać to w pliku tekstowym.
Joey
To prawda, ale dlaczego ktoś chciałby tego w pliku tekstowym? :-)
Wim ten Brink
2
Pamiętaj, że spowoduje to (przynajmniej w Win XP) przeszukanie wszystkich plików ZIP we wszystkich podfolderach. Co będzie strasznie wolne. Co prawdopodobnie nie jest tym, czego chcesz. Którego nie da się łatwo wyłączyć. Jeśli nie ma plików ZIP, zgadzam się, że jest to najlepsze podejście.
Martin
@Wim: Twój 5-etapowy proces (Win + F, Przeglądaj, podfolder, *, Start) jest znacznie wolniejszy niż pisanie „dir / s” (dla maszynistki, która pisze ponad 100 słów na minutę i jest przyzwyczajona do robienia różnych rzeczy w wierszu polecenia, więc często jest wstępnie otwierany). Ponadto proces, o którym wspomniałeś, zmienił wersje systemu Windows, a „dir / s” jest spójny. Ponadto proces wymaga naciśnięcia klawisza Win + F, co nie zawsze jest łatwe. Czasami, nawet jeśli klawiatura ma klawisz Windows, klucz ten może być trudniejszy w użyciu, na przykład w scenariuszach dostępu zdalnego, w których klucz może być używany przez komputer lokalny zamiast zdalnego
TOOGAM
1

Uważam, że ten plik wsadowy jest użyteczny

DragDropListFile.bat

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

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

Sposób użycia: Po prostu przeciągnij folder i upuść go w pliku DragDropListFile.bat, a następnie zostanie utworzony plik o nazwie list.txt, który zawiera to, co chcesz.

Jeśli nie lubisz przeciągania i upuszczania, wypróbuj ten plik wsadowy

ListFile.bat

ECHO OFF

SET crtPath=%~dp0

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

Sposób użycia: umieść plik ListFile.bat w folderze, w którym chcesz wyświetlić listę plików, a następnie uruchom plik ListFile.bat, a następnie zostanie utworzony plik o nazwie list.txt, który zawiera żądane pliki.

123iamking
źródło
0

dir /s /w >files.txtdoprowadzi cię przez większość drogi. Zachowa rozszerzenia. Następnie otwórz files.txtw edytorze tekstu i jedno z nich

  • posortuj wszystkie linie i usuń zbędne
  • lub usuń je za pomocą operacji znajdowania i zastępowania lub 2.
    • Wyrażenie regularne pozbyło ^ +\d+ File.+\r\n\r\n Dir.+\r\n\r\nsię luk i szczegółów folderów między poszczególnymi listami plików folderów dla mnie w Notepad ++.
  • Następnie po prostu przytnij górę i ogon pliku tekstowego.
CAD CAD
źródło