วิธีการนับบรรทัดของรหัสทั้งหมดในไดเรกทอรีซ้ำบน Windows?


21

ในเครื่อง Windows 7 ฉันต้องการวิธีที่รวดเร็วในการกำหนดจำนวนบรรทัดในไฟล์ทั้งหมดในแผนผังไดเรกทอรีสำหรับไฟล์ที่มีนามสกุล มีวิธีที่ดีออกไปจากกล่อง?


1
[คุณรู้หรือไม่ว่าโปรแกรมที่คล้ายกันสำหรับ wc (คำสั่ง unix word count) บน Windows?] [1] [1]: stackoverflow.com/questions/247234/…

ฉันคุ้นเคยกับห้องสุขาฉันหวังว่าจะมี W7 Equivellant
quillbreaker

@ (quillbreaker) มี ชุดเครื่องมือบรรทัดคำสั่ง Linux / Unix ทั้งหมดสามารถใช้ได้สำหรับแพลตฟอร์มที่ใช้ windows ทั้งหมด gnuwin32.sourceforge.net
shawty

คำตอบ:


41

PowerShell เป็นตัวเลือก

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

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

1
โปรดแสดงหลักฐานและวิธีแก้ปัญหาอื่นหากด้านบนไม่ถูกต้อง ฉันจะลบ / แก้ไขคำตอบของฉัน
maweeras

2
ในขณะที่คำตอบของคุณมีประโยชน์และได้รับการยอมรับจาก OP แต่คำตอบของคุณนั้นไม่ถูกต้อง ปัญหาอยู่ในคำสั่งแรกในโซลูชันของคุณ - dir -Recurse *.txtจะประมวลผลไดเรกทอรีที่มีชื่อตรงกัน*.txtเท่านั้นในขณะที่แสดงผลไฟล์ทั้งหมดที่พบในไดเรกทอรีเหล่านั้นและทรีย่อย แต่ OP *.txtต้องการที่จะดำเนินการไดเรกทอรีทั้งหมดในขณะที่การแสดงผลเฉพาะไฟล์ที่การแข่งขัน dir -Recurse -Include *.txtต้องการทำเช่นนั้นคุณจะใช้
Cinnam

1
สิ่งนี้ไม่ถูกต้อง windows help on Get-ChildItem(ซึ่งdirเป็นนามแฝง) ระบุว่าGet-ChildItem –Path "*.txt" -Recurseเป็นสิ่งที่จำเป็นเพื่อให้ได้รับ "ไฟล์. txt ทั้งหมดในไดเรกทอรีปัจจุบันและไดเรกทอรีย่อย" link: technet.microsoft.com/library/hh849800.aspx
Andrew Leap

@AndrewLeap ฉันเพิ่งทดสอบอีกครั้ง - บน Win8 กับ PowerShell 4.0 มันทำงานได้ตามที่คุณพูด อย่างไรก็ตามใน Win7 ด้วย PowerShell 2.0 มีปัญหาที่ฉันอธิบาย dir -Recurse -Include *.txtดูเหมือนว่าจะมีผลลัพธ์ที่ต้องการในทั้งสองเวอร์ชันนี้
Cinnam

บางคนจะใช้สิ่งนี้เพื่อตรวจสอบใน BOTH * .txt AND * .java (รวมทั้งหมด) ได้อย่างไร
Jeremy Moritz

3

หากต้องการขยายคำตอบ maweeras ด้านบน (ขออภัยตัวแทนไม่เพียงพอที่จะแสดงความคิดเห็น) คุณสามารถค้นหาหลายนามสกุลไฟล์โดยผ่านอาร์เรย์ที่คั่นด้วยจุลภาคเพื่อ -Include

ตัวอย่างเช่น:

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


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.