Windows'ta bir dizindeki tüm kod satırlarını yinelemeli olarak nasıl sayabilirim?


21

Windows 7 makinesinde, belirli bir uzantıdaki dosyalar için dizin ağacındaki tüm dosyalarda satır sayısını belirlemenin hızlı bir yolunu istiyorum. Bunu yapmak için kutunun dışında iyi bir şey var mı?


1
[Windows'da wc (unix word count komutu) için benzer bir program biliyor musunuz?] [1] [1]: stackoverflow.com/questions/247234/…

Wc'ye aşinayım, keşke bir W7 eşdeğeri olsaydı.
quillbreaker

@ (Quillbreaker) var. Tüm Linux / Unix komut satırı araç seti TÜM Windows tabanlı platformlar için kullanılabilir. gnuwin32.sourceforge.net
shawty

Yanıtlar:


41

powershell bir seçenektir.

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

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

1
yukarıdaki yanlışsa lütfen kanıt ve alternatif çözüm sağlayın. Ardından cevabımı silerim / düzeltirim.
maweeras

2
Yanıtınız OP tarafından yararlı ve kabul edilmiş olsa da, OP'nin sorusuna doğru cevap vermez. Sorun, çözümünüzün ilk komutundadır - dir -Recurse *.txtyalnızca adları eşleşen dizinleri *.txtişlerken, bu dizinlerde ve alt ağaçlarında bulunan tüm dosyaları çıkarır. Ancak OP, yalnızca eşleşen dosyaları verirken tüm dizinleri işlemek istedi *.txt. Bunu yapmak için kullanırsınız dir -Recurse -Include *.txt.
Cinnam

1
Bu yanlış, windows yardım Get-ChildItem(ki dirbir takma adıdır) Get-ChildItem –Path "*.txt" -Recurse"geçerli dizindeki ve alt dizinlerindeki .txt dosyalarının tümünü" almak için gereken her şeyi belirtir . bağlantı: technet.microsoft.com/library/hh849800.aspx
Andrew Leap

@AndrewLeap Tekrar test ettim - PowerShell 4.0 ile Win8'de söylediğiniz gibi çalışıyor. Ancak Win7 PowerShell 2.0 ile anlattığım sorun var. dir -Recurse -Include *.txtbu sürümlerin her ikisinde de istenen sonuçlara sahip gibi görünüyor.
Cinnam

Birisi bunu İKİ * .txt AND * .java (toplam) için kontrol etmek için nasıl kullanır?
Jeremy Moritz

3

Yukarıdaki maweeras cevabını genişletmek için (yorum yapmak için özür dileriz), virgülle ayrılmış bir diziyi -Include'a geçirerek birden fazla dosya uzantısı arayabilirsiniz.

Yani mesela:

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


2

Cmd olarak aşağıdakiler çalışır:

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

Veya bir [.bat] içinde:

for %%f in (*.TXT) do find /v /c "" "%%f"
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.