使用PowerShell查找项目中的行数

时间:2009-02-18 14:44:21

标签: powershell

我正试图找到一种方法来计算我拥有的项目的所有源文件中的总行数。我已尝试将dir -r -name加入measure-object -line,但这只计算了我拥有的文件数。

有没有人有脚本来做这件事?

8 个答案:

答案 0 :(得分:34)

Get-ChildItem -Filter "*.cs" -Recurse | Get-Content | Measure-Object -line

答案 1 :(得分:14)

感谢所有回答的人。我最终实现这个的方式是

dir . -filter "*.cs" -Recurse -name | foreach{(GC $_).Count} | measure-object -sum

答案 2 :(得分:8)

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:删除了Measure-Object的使用。

答案 3 :(得分:5)

dir **。txt -recurse |选择Fullname,@ {name =“LineCount”; expression = {@(get-content $ _。fullname).count}}

答案 4 :(得分:4)

我刚过了一点,发现这个命令确实递归地测量了所有c#文件:

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

答案 5 :(得分:0)

打印文件名和行数:

Get-ChildItem -re -in "*.cs" |
Foreach-Object { 
    $fileStats = Get-Content $_.FullName | Measure-Object -line
    $linesInFile = $fileStats.Lines
    Write-Host "$_=$linesInFile" 
} 

答案 6 :(得分:0)

由于我需要类似的东西,所以我想到了。

一种文件类型: GET-ChildItem -Recurse -Filter'* .cs'|获取内容|测量对象线

多种文件类型: GET-ChildItem -Recurse -Include' .cs',' .aspx','* .ascx'|获取内容|测量对象线

答案 7 :(得分:-1)

在目录内的文件中计算No. of lines

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

在目录内的文件中计算SUM of lines

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