Найти количество строк в проекте с powershell - PullRequest
29 голосов
/ 18 февраля 2009

Я пытаюсь найти способ подсчитать общее количество строк во всех исходных файлах проекта, который у меня есть. Я попытался передать dir -r -name в measure-object -line, но это просто подсчитывает количество файлов, которые у меня есть.

У кого-нибудь есть скрипт для этого?

Ответы [ 6 ]

34 голосов
/ 18 февраля 2009
Get-ChildItem -Filter "*.cs" -Recurse | Get-Content | Measure-Object -line
14 голосов
/ 18 февраля 2009

Спасибо всем, кто ответил. В итоге я реализовал это

dir . -filter "*.cs" -Recurse -name | foreach{(GC $_).Count} | measure-object -sum
8 голосов
/ 18 февраля 2009
Get-ChildItem . -Include *.txt -Recurse | foreach {(Get-Content $_).Count}

Конденсировано с псевдонимами:

GCI . -Include *.txt -Recurse | foreach{(GC $_).Count}

даст результаты, подобные этому:

Lines Words               Characters              Property
----- -----               ----------              --------
   21
   40
   29
   15
  294
   13
   13
  107

РЕДАКТИРОВАТЬ: Изменено для рекурсии через подпапки.

РЕДАКТИРОВАТЬ 2: Удалено использование объекта измерения.

5 голосов
/ 18 февраля 2009

dir **. Txt -recurse | выберите полное имя, @ {name = "LineCount"; выражение = {@ (get-content $ _. полное имя) .count}}

4 голосов
/ 11 июня 2014

Я только немного выдохся и обнаружил, что эта команда действительно рекурсивно измеряет все файлы c #:

Get-ChildItem -Filter *.cs -Recurse | Get-Content | Measure-Object -Word -Line -Character

0 голосов
/ 25 февраля 2017

Печатает имя файла и количество строк:

Get-ChildItem -re -in "*.cs" |
Foreach-Object { 
    $fileStats = Get-Content $_.FullName | Measure-Object -line
    $linesInFile = $fileStats.Lines
    Write-Host "$_=$linesInFile" 
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...