我正试图找到一种方法来计算我拥有的项目的所有源文件中的总行数。我已尝试将dir -r -name
加入measure-object -line
,但这只计算了我拥有的文件数。
有没有人有脚本来做这件事?
答案 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