Tập tin hàng loạt; Liệt kê các tập tin trong thư mục, chỉ tên tập tin?


120

Đây có lẽ là một câu hỏi rất đơn giản, nhưng tôi gặp rắc rối với nó. Về cơ bản, tôi đang cố gắng viết Batch File và tôi cần nó để liệt kê tất cả các tệp trong một thư mục nhất định. Các dirlệnh sẽ thực hiện điều này, nhưng nó cũng đưa ra một loạt các thông tin khác; Tôi muốn nó chỉ liệt kê tên tập tin và loại trừ bất cứ điều gì khác.

Tôi chỉ muốn đầu ra trông như thế này:

file1.txt
file2.txt
file3.txt

Cảm ơn trước!


Câu trả lời:


235

Lệnh đầy đủ là:

dir /b /a-d

Hãy để tôi phá vỡ nó;

Về cơ bản /blà những gì bạn tìm kiếm.

/a-d sẽ loại trừ tên thư mục.


Để biết thêm thông tin, xem dir /?các đối số khác mà bạn có thể sử dụng với dirlệnh.


8
Là OK cho tôi :) dir /b /a-d > tmp.txt
Stéphane Grillon

2
Nó cũng không hoạt động /Sđể lấy tên tệp của thư mục con.
Farhan Ghumra

@xyroid bạn đã đọc seltene /a-d will the exclude directory nameschưa?
Stephan

4
Không loại trừ nếu tôi muốn in tên của tệp thư mục con.
Farhan Ghumra

Điều này rất gần với những gì tôi cần. Tôi cần các đường dẫn tuyệt đối và đệ quy vào các thư mục con. Đây là những gì tôi đã sử dụng:dir /B /A-D /S
EmpathicSage

33

Bạn cũng có thể thử điều này:

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

Sử dụng một forvòng lặp, bạn có thể echora tất cả các tên tệp của thư mục hiện tại.

Để in chúng trực tiếp từ bảng điều khiển:

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

7

Nếu bạn cũng cần các thư mục con, bạn cần một lệnh "dir" và lệnh "For"

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

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

del list1.txt

đặt thư mục gốc của bạn trong lệnh dir. Nó sẽ tạo một list1.txt với tên đường dẫn đầy đủ và sau đó là list.txt chỉ với tên tệp.


5

1.Mở notepad

2. Tạo tập tin mới

3. dòng dưới đây

dir /b > fileslist.txt

4. Lưu " list.bat"

Đó là nó. bây giờ bạn có thể sao chép và dán list.battệp " " này vào bất kỳ vị trí thư mục nào của bạn và nhấp đúp vào tệp đó, nó sẽ tạo một " fileslist.txt" cùng với danh sách thư mục và tên tệp thư mục đó.

Đầu ra mẫu: nhập mô tả hình ảnh ở đây

Lưu ý: Nếu bạn muốn tạo danh sách tên tệp cùng với thư mục con, thì bạn có thể tạo tệp bó với mã dưới đây.

dir /b /s > fileslist.txt

2
Điều gì xảy ra nếu tôi không muốn tập tin đầu ra "fileslist.txt" được đưa vào danh sách?
Behnam

4
  • Tại sao không sử dụng wherethay thế dir?

Trong dòng lệnh:

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

Trong tập tin bat / cmd:

@echo off 

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

file_0003.xlsx
file_0001.txt
file_0002.log
where .:*
  • Đầu ra:

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

Đối với đệ quy:

where /r . *
  • Đầu ra:

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
  • Đối với vòng lặp lấy đường dẫn và tên:

  • Trong dòng lệnh:
for /f tokens^=* %i in ('where .:*')do @echo/ Path: %~dpi ^| Name: %~nxi
  • Trong tập tin bat / cmd:
@echo off 

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

 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

  • Đối với đường dẫn nhận vòng lặp và tên đệ quy:

Trong dòng lệnh:

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

Trong tập tin bat / cmd:

@echo off 

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

 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. mở cmd

  2. thay đổi thư mục nơi bạn muốn tạo tệp văn bản (movie_list.txt) cho thư mục (d: \ videos \ movies)

  3. gõ lệnh sau

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


2

tạo một tệp bó với mã sau đây:

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

Sau đó kéo và thả một thư mục trên đó và các tệp trong thư mục sẽ được liệt kê trong list.txt


0

dir / s / d / a: -d "thư mục *. *"> file.txt

Và, mất / s nếu bạn không cần tệp từ thư mục con

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.