Як підраховувати всі рядки коду в каталозі рекурсивно в Windows?


21

На машині Windows 7 я хотів би швидко визначити кількість рядків у всіх файлах дерева дерев для файлів заданого розширення. Чи є якийсь непоганий спосіб зробити це?


1
[Ви знаєте , подібну програму для туалету (Юнікс кількість слів команди) на Windows , робити?] [1] [1]: stackoverflow.com/questions/247234 / ...

Я знайомий з wc, я б хотів, щоб був еквівалент W7.
quillbreaker

@ (quillbreaker) Є. Весь інструментарій командного рядка Linux / Unix доступний для ВСІХ платформ Windows. gnuwin32.sourceforge.net
shawty

Відповіді:


41

powerhell - це варіант.

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

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

1
будь ласка, надайте докази та альтернативне рішення, якщо вище вказано невірно. Потім я видалю / виправлю свою відповідь.
maweeras

2
Хоча ваша відповідь корисна і прийнята ОП, вона не відповідає правильно на питання ОП. Проблема полягає в першій команді у вашому рішенні - dir -Recurse *.txtбуде обробляти лише каталоги, імена яких збігаються *.txt, видаючи всі файли, які вони знаходять у цих каталогах та їхніх підрядках. Але ОП хотів обробити всі каталоги, видаючи лише ті файли, які відповідають *.txt. Для цього ви б використали dir -Recurse -Include *.txt.
Cinnam

1
Це невірно, довідка Windows про Get-ChildItem(що dirє псевдонімом) заявляє, що Get-ChildItem –Path "*.txt" -Recurseце все, що потрібно для отримання "всіх файлів .txt у поточному каталозі та його підкаталогах". посилання: 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 (загальна сума)?
Джеремі Моріц

3

Щоб розширити відповідь maweeras вище (вибачте, недостатньо репортажів для коментарів), ви можете шукати кілька розширень файлів, передаючи масив з комою в -Include.

Так, наприклад:

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


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.