Làm cách nào để đếm tất cả các dòng mã trong một thư mục đệ quy trên Windows?


21

Trên máy Windows 7, tôi muốn một cách nhanh chóng để xác định số lượng dòng trong tất cả các tệp trong cây thư mục, cho các tệp của tiện ích mở rộng đã cho. Có cách nào tốt để làm điều này không?


1
[Bạn có biết một chương trình tương tự cho wc (unix số từ lệnh) trên Windows?] [1] [1]: stackoverflow.com/questions/247234/...

Tôi quen thuộc với wc, tôi ước có một tương đương W7.
quillbreaker

@ (quillbreaker) Có. Toàn bộ bộ công cụ dòng lệnh Linux / Unix có sẵn cho TẤT CẢ các nền tảng dựa trên windows. gnuwin32.sourceforge.net
Shawty

Câu trả lời:


41

powershell là một lựa chọn.

PS D:\Scratch\maweeras\superuser> dir -Recurse *.txt | Get-Content | Measure-Object -Line

Lines Words Characters Property
----- ----- ---------- --------
  168

1
vui lòng cung cấp bằng chứng và giải pháp thay thế nếu ở trên không chính xác. Sau đó tôi sẽ xóa / sửa câu trả lời của tôi.
maweeras

2
Mặc dù câu trả lời của bạn rất hữu ích và được OP chấp nhận, nhưng nó không trả lời đúng câu hỏi của OP. Vấn đề nằm ở lệnh đầu tiên trong giải pháp của bạn - dir -Recurse *.txtsẽ chỉ xử lý các thư mục có tên trùng khớp *.txt, trong khi xuất ra tất cả các tệp mà nó tìm thấy trong các thư mục đó và các cây con của chúng. Nhưng OP muốn xử lý tất cả các thư mục trong khi chỉ xuất ra các tệp phù hợp *.txt. Để làm điều đó, bạn sẽ sử dụng dir -Recurse -Include *.txt.
Cinnam

1
Điều này là không chính xác, các cửa sổ trợ giúp trên Get-ChildItem( dirlà bí danh của) trạng thái Get-ChildItem –Path "*.txt" -Recurselà tất cả những gì cần thiết để có được "tất cả các tệp .txt trong thư mục hiện tại và thư mục con của nó." link: technet.microsoft.com/l Library / hh849800.aspx
Andrew Leap

@AndrewLeap Tôi vừa thử nghiệm lại - trên Win8 với PowerShell 4.0, nó hoạt động như bạn nói. Tuy nhiên, trên Win7 với PowerShell 2.0, nó có vấn đề như tôi đã mô tả. dir -Recurse -Include *.txtdường như có kết quả mong muốn trên cả hai phiên bản này.
Cinnam

Làm thế nào một người nào đó sẽ sử dụng điều này để kiểm tra trong CẢ HAI * .txt VÀ * .java (tổng cộng)?
Jeremy Moritz

3

Để mở rộng câu trả lời của maweeras ở trên (xin lỗi không đủ đại diện để nhận xét), bạn có thể tìm kiếm nhiều phần mở rộng tệp bằng cách chuyển một mảng được phân tách bằng dấu phẩy cho -Inc loại trừ.

Ví dụ:

dir -Recurse -Include *.ts,*.tsx -Exclude *node_modules* | Get-Content | Measure-Object -Line


2

Các công việc sau đây trong cmd:

for %f in (*.TXT) do find /v /c "" "%f"

Hoặc trong [.bat]:

for %%f in (*.TXT) do find /v /c "" "%%f"
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.