Bagaimana cara menghitung semua baris kode dalam direktori secara rekursif pada Windows?
21
Pada mesin Windows 7, saya ingin cara cepat untuk menentukan jumlah baris di semua file di pohon direktori, untuk file dari ekstensi yang diberikan. Apakah ada cara baik di luar kotak untuk melakukan ini?
berikan bukti dan solusi alternatif jika di atas salah. Saya kemudian akan menghapus / memperbaiki jawaban saya.
maweeras
2
Meskipun jawaban Anda bermanfaat dan diterima oleh OP, itu tidak menjawab pertanyaan OP dengan benar. Masalahnya ada pada perintah pertama dalam solusi Anda - dir -Recurse *.txthanya akan memproses direktori yang namanya cocok *.txt, sambil mengeluarkan semua file yang ditemukan di direktori tersebut dan subpohonnya. Tetapi OP ingin memproses semua direktori sembari hanya menghasilkan file yang cocok *.txt. Untuk melakukan itu, Anda akan menggunakan dir -Recurse -Include *.txt.
Cinnam
1
Ini tidak benar, bantuan windows pada Get-ChildItem(yang dirmerupakan alias dari) menyatakan bahwa Get-ChildItem –Path "*.txt" -Recursehanya itu yang diperlukan untuk mendapatkan "semua file .txt di direktori saat ini dan subdirektori." tautan: technet.microsoft.com/library/hh849800.aspx
Andrew Leap
@AndrewLeap Saya baru saja mengujinya lagi - pada Win8 dengan PowerShell 4.0 berfungsi seperti yang Anda katakan. Namun pada Win7 dengan PowerShell 2.0 memiliki masalah yang saya jelaskan. dir -Recurse -Include *.txttampaknya memiliki hasil yang diinginkan pada kedua versi ini.
Cinnam
Bagaimana seseorang menggunakan ini untuk memeriksa KEDUA * .txt DAN * .java (total gabungan)?
Jeremy Moritz
3
Untuk memperluas jawaban maweeras di atas (maaf tidak cukup perwakilan untuk berkomentar), Anda dapat mencari beberapa ekstensi file dengan meneruskan array yang dibatasi koma ke -Include.
Jawaban:
PowerShell adalah sebuah opsi.
sumber
dir -Recurse *.txt
hanya akan memproses direktori yang namanya cocok*.txt
, sambil mengeluarkan semua file yang ditemukan di direktori tersebut dan subpohonnya. Tetapi OP ingin memproses semua direktori sembari hanya menghasilkan file yang cocok*.txt
. Untuk melakukan itu, Anda akan menggunakandir -Recurse -Include *.txt
.Get-ChildItem
(yangdir
merupakan alias dari) menyatakan bahwaGet-ChildItem –Path "*.txt" -Recurse
hanya itu yang diperlukan untuk mendapatkan "semua file .txt di direktori saat ini dan subdirektori." tautan: technet.microsoft.com/library/hh849800.aspxdir -Recurse -Include *.txt
tampaknya memiliki hasil yang diinginkan pada kedua versi ini.Untuk memperluas jawaban maweeras di atas (maaf tidak cukup perwakilan untuk berkomentar), Anda dapat mencari beberapa ekstensi file dengan meneruskan array yang dibatasi koma ke -Include.
Jadi misalnya:
sumber
Saya menggunakan alat http://www.locmetrics.com gratis dan lite
sumber
Berikut ini berfungsi dalam cmd:
Atau di [.bat]:
sumber