Liệt kê tất cả các tệp trong tất cả các thư mục con


Câu trả lời:


37

Liệt kê tất cả các tệp đệ quy

C: \> thư mục / s

Để lưu chúng vào một tập tin

C: \> dir / s /b>filelist.txt

Xem cho họ một trang tại một thời điểm

C: \> thư mục / s | hơn


3
Chà, được thôi ... Cái này cũng sẽ hoạt động. Chỉ tự hỏi tại sao không ai sử dụng chức năng Tìm kiếm tiêu chuẩn của Windows cho việc này. :-)
Wim ten Brink

2
@Workshop Alex: Bởi vì 1) đệ quy dirchỉ nhanh hơn một chút nếu không phải kiểm tra bất kỳ điều kiện nào; 2) nó cho phép bạn lưu tên vào một tập tin.
grawity

4
@WimtenBrink: và bạn sẽ gửi tìm kiếm windows cho người dùng khác như thế nào?
tỏi Adolf

1
Bạn không cần chuyển sang nhiều hơn, bạn chỉ cần chuyển đổi / p (thực hiện tương tự)
Keltari

3
Vì câu hỏi không đề cập đến các thư mục, nên nó sẽ được dir /a-d /b /s.
jiggunjer

15

Hãy thử cây / f. Điều này sẽ xuất ra toàn bộ cấu trúc.


1
Mà sẽ được hiển thị dưới dạng cây, không phải là một danh sách.
Joey

Bạn không nghĩ OP sẽ coi kết quả đó là một danh sách?
hyperslug

2
Tôi nghĩ rằng lệnh cây sẽ có định dạng tốt nhất, cho phép bạn thấy rõ cấp độ của các thư mục con.
alex

Nó có cấu trúc tốt nhất. nó có thể được lưu dưới dạng tệp văn bản hoặc tệp html không?
xypha

đã thử tree /f>filelist.txtvà nó đã làm việc
xypha

5

Bạn sẽ nhận được UnixUtils tại sourceforge , nó sẽ cung cấp cho bạn find.exe.

Sau đó, bạn có thể làm như sau cho danh sách tất cả các tệp có đường dẫn thư mục.

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

Có các dạng khác của lệnh Unix có thể hữu ích cho bạn.
Đầu ra có khả năng tìm kiếm nhiều hơn so với lệnh gốc dirtreelệnh.


Cập nhật với đầu vào từ Johannes.
Trong cmd.exevỏ

dir /b /s

hoạt động khá tốt cho một danh sách đệ quy ở dạng Widows được định dạng,
(vì vậy bạn thấy " C:\" và dấu gạch chéo ngược, ' \').
Tôi hoàn toàn bỏ lỡ câu trả lời " \b" trong Niflecâu trả lời! (+1 cho điều đó ngay bây giờ).


Không cần phải cài đặt bất cứ thứ gì ở đây, vì dirnó hoàn toàn có khả năng này.
Joey

1
@Johannes, bạn đã so sánh một findđầu ra Unix với DOS dir /shay treevề vấn đề đó chưa?
nik

1
Bạn đã bao giờ sử dụng dir /b? :-)
Joey

@Johannes, thực sự tôi không thể nhớ nếu tôi đã làm điều đó trong DOS 6.22 ngày. Đã quen với findvà với Cygwin, không bao giờ thử các lệnh dos (thực sự tôi đã mất một chút thời gian để mở cmdshell và tránh /usr/bin/dirthử tùy chọn đó. Nhưng, nó vẫn hoạt động; rất vui khi biết rằng:-)
nik

2

Sao phức tạp thế? Nhấn Windowskey + F để bắt đầu "Tìm kiếm tệp" trong Windows. Ở bên trái, đi đến "Nhìn vào" và chọn tùy chọn ở phía dưới có tên "Duyệt ...". Chọn thư mục (phụ) nơi bạn muốn tìm kiếm. Nhập "*" (không có dấu ngoặc kép) trong hộp chỉnh sửa "Tất cả hoặc một phần của tên tệp" và bắt đầu tìm kiếm. Lấy một ít cà phê khi bạn đang tìm kiếm trên một đĩa lớn có nhiều dữ liệu và chỉ cần chờ công cụ tìm kiếm dựa trên trình thám hiểm này hiển thị cho bạn một danh sách đầy đủ. Bạn có thể tìm kiếm nó, mở tệp trực tiếp và thậm chí thu hẹp tìm kiếm của bạn nếu cần.

Tại sao mọi người quên hành vi tìm kiếm mặc định này của Windows?


3
bởi vì nó không phải là 1337? :-)
Natrium

13
Bạn sẽ có một thời gian khó khăn để có được điều đó trong một tập tin văn bản, ví dụ.
Joey

Đúng, nhưng tại sao ai đó muốn nó trong một tệp văn bản? :-)
Wim ten Brink

2
Lưu ý rằng điều này sẽ (ít nhất là trên Win XP) tìm kiếm tất cả các tệp ZIP trong tất cả các thư mục con. Mà sẽ chậm kinh khủng. Mà có lẽ không phải là những gì bạn muốn. Mà không thể dễ dàng tắt. Nếu không có tệp ZIP, tôi đồng ý rằng đây là cách tiếp cận tốt nhất.
Martin

@Wim: Quá trình 5 bước của bạn (Win + F, Duyệt, Thư mục con, *, Bắt đầu) chậm hơn nhiều so với việc chỉ gõ "dir / s" (đối với một người đánh máy gõ hơn 100 từ mỗi phút và được sử dụng để làm công cụ tại một dấu nhắc lệnh, vì vậy nó thường được mở trước). Ngoài ra, quá trình bạn đề cập đã thay đổi các phiên bản w / Windows, trong khi "dir / s" vẫn nhất quán. Ngoài ra, quy trình của bạn yêu cầu nhấn Win + F, điều này không phải lúc nào cũng dễ dàng. Đôi khi, ngay cả khi bàn phím có phím Windows, phím đó có thể khó sử dụng hơn, chẳng hạn như trong các tình huống Truy cập từ xa, nơi máy tính cục bộ có thể sử dụng phím thay vì điều khiển từ xa
TUYỆT ĐỐI 3/10/2015

1

Tôi thấy tập tin này rất hữu ích

DragDropListFile.bat

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

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

Cách sử dụng: Chỉ cần kéo thư mục và thả nó vào tệp DragDropListFile.bat, sau đó một tệp có tên list.txt, chứa những gì bạn muốn, được tạo.

Nếu bạn không thích kéo và thả, hãy thử tệp bó này

ListFile.bat

ECHO OFF

SET crtPath=%~dp0

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

Cách sử dụng: đặt tệp ListFile.bat vào thư mục bạn muốn liệt kê các tệp, sau đó chạy tệp ListFile.bat, sau đó một tệp có tên list.txt, chứa những gì bạn muốn, được tạo.


0

dir /s /w >files.txtsẽ giúp bạn có được hầu hết các cách đó. Nó sẽ giữ các phần mở rộng. Sau đó mở files.txttrong một trình soạn thảo văn bản và

  • sắp xếp tất cả các dòng và xóa những cái thừa
  • hoặc loại bỏ chúng bằng một hoạt động tìm và thay thế hoặc 2.
    • Regex ^ +\d+ File.+\r\n\r\n Dir.+\r\n\r\nđã loại bỏ các khoảng trống và chi tiết thư mục giữa các danh sách tệp thư mục riêng lẻ cho tôi trong Notepad ++.
  • Sau đó, chỉ cần cắt đầu & đuôi của tệp văn bản.
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.