Plik wsadowy; Wyświetlić pliki w katalogu, tylko nazwy plików?


120

To prawdopodobnie bardzo proste pytanie, ale mam z nim problem. Zasadniczo próbuję napisać plik wsadowy i potrzebuję go, aby wyświetlić wszystkie pliki w określonym katalogu. dirKomenda będzie to zrobić, ale również daje kilka innych informacji; Chcę, aby wyświetlało TYLKO nazwy plików i wykluczało wszystko inne.

Chcę tylko, aby wynik wyglądał następująco:

file1.txt
file2.txt
file3.txt

Z góry dziękuję!


Odpowiedzi:


236

Pełne polecenie to:

dir /b /a-d

Pozwól mi to przerwać;

Zasadniczo to /bjest to, czego szukasz.

/a-d wykluczy nazwy katalogów.


Aby uzyskać więcej informacji, zobacz dir /?inne argumenty, których można używać z dirpoleceniem.


8
Dla mnie jest OK :) dir /b /a-d > tmp.txt
Stéphane GRILLON

2
Nie działa również z /Spobieraniem nazw plików podkatalogów.
Farhan Ghumra

@xyroid czy czytałeś seltene /a-d will the exclude directory names?
Stephan

4
Nie wyklucza to, że chcę wydrukować nazwy plików podkatalogów.
Farhan Ghumra

To było bardzo bliskie temu, czego potrzebowałem. Potrzebowałem bezwzględnych ścieżek i rekursji do podkatalogów. Oto, czego użyłem:dir /B /A-D /S
EmpathicSage

34

Możesz też spróbować tego:

for %%a in (*) do echo %%a

Używając forpętli, możesz echousunąć wszystkie nazwy plików z bieżącego katalogu.

Aby wydrukować je bezpośrednio z konsoli:

for %a in (*) do @echo %a

7

Jeśli potrzebujesz również podkatalogów, potrzebujesz polecenia „dir” i „For”

dir /b /s DIRECTORY\*.* > list1.txt

for /f "tokens=*" %%A in (list1.txt) do echo %%~nxA >> list.txt

del list1.txt

umieść katalog główny w dir polecenie. Utworzy list1.txt z pełnymi nazwami ścieżek, a następnie list.txt z tylko nazwami plików.


5

1. otwórz notatnik

2. Utwórz nowy plik

3. typ poniżej linii

dir /b > fileslist.txt

4.Zapisz „ list.bat

Otóż ​​to. teraz możesz skopiować i wkleić ten list.batplik " " w dowolnym miejscu swojego folderu i kliknąć go dwukrotnie, utworzy to " fileslist.txt" wraz z tym katalogiem i listą nazw plików.

Przykładowe dane wyjściowe: wprowadź opis obrazu tutaj

Uwaga: Jeśli chcesz utworzyć listę nazw plików wraz z podfolderem, możesz utworzyć plik wsadowy z poniższym kodem.

dir /b /s > fileslist.txt

2
Co się stanie, jeśli nie chcę, aby plik wyjściowy „fileslist.txt” znalazł się na liście?
Behnam

4
  • Dlaczego nie użyć wherezamiast tego dir?

W linii poleceń:

for /f tokens^=* %i in ('where .:*')do @"%~nxi"

W pliku bat / cmd:

@echo off 

for /f tokens^=* %%i in ('where .:*')do %%~nxi
  • Wynik:

file_0003.xlsx
file_0001.txt
file_0002.log
where .:*
  • Wynik:

G:\SO_en-EN\Q23228983\file_0003.xlsx
G:\SO_en-EN\Q23228983\file_0001.txt
G:\SO_en-EN\Q23228983\file_0002.log

Dla rekurencyjnie:

where /r . *
  • Wynik:

G:\SO_en-EN\Q23228983\file_0003.xlsx
G:\SO_en-EN\Q23228983\file_0001.txt
G:\SO_en-EN\Q23228983\file_0002.log
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0004.docx
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0005.csv
G:\SO_en-EN\Q23228983\Sub_dir_001\file_0006.odt
  • Dla pętli pobierz ścieżkę i nazwę:

  • W linii poleceń:
for /f tokens^=* %i in ('where .:*')do @echo/ Path: %~dpi ^| Name: %~nxi
  • W pliku bat / cmd:
@echo off 

for /f tokens^=* %%i in ('where .:*')do echo/ Path: %%~dpi ^| Name: %%~nxi
  • Wynik:

 Path: G:\SO_en-EN\Q23228983\ | Name: file_0003.xlsx
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0001.txt
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0002.log

  • Dla pętli pobierz ścieżkę i nazwę rekurencyjnie:

W linii poleceń:

for /f tokens^=* %i in ('where /r . *')do @echo/ Path: %~dpi ^| Name: %~nxi

W pliku bat / cmd:

@echo off 

for /f tokens^=* %%i in ('where /r . *')do echo/ Path: %%~dpi ^| Name: %%~nxi
  • Wynik:

 Path: G:\SO_en-EN\Q23228983\ | Name: file_0003.xlsx
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0001.txt
 Path: G:\SO_en-EN\Q23228983\ | Name: file_0002.log
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0004.docx
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0005.csv
 Path: G:\SO_en-EN\Q23228983\Sub_dir_001\ | Name: file_0006.odt


2

Windows 10:

  1. otwórz cmd

  2. zmień katalog, w którym chcesz utworzyć plik tekstowy (movie_list.txt) dla folderu (d: \ videos \ movies)

  3. wpisz następujące polecenie

    d: \ videos \ movies> dir / b / ad> movie_list.txt


2

utwórz plik wsadowy z następującym kodem:

dir %1 /b /a-d > list.txt

Następnie przeciągnij i upuść na nim katalog, a pliki w katalogu zostaną wymienione w list.txt


0

dir / s / d / a: -d "folderpath *. *"> plik.txt

I stracić / s, jeśli nie potrzebujesz plików z podfolderów

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.