使用powershell查找项目中的行数

7tofc5zh  于 2022-12-23  发布在  Shell
关注(0)|答案(9)|浏览(189)

我试图找到一种方法来计算项目中所有源文件的总行数,我试过将dir -r -name管道化到measure-object -line中,但那只是计算了我拥有的文件数。
有没有人有这样的剧本?

vkc1a9a2

vkc1a9a21#

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

eqqqjvef2#

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

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

GC是获取内容的别名
dir是获取子项的别名

lymgl2op

lymgl2op3#

我刚刚过期了一段时间,发现这个命令确实递归地度量了所有的c#文件:
第一个月

ruyhziif

ruyhziif4#

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

EDIT:修改为通过子文件夹递归。
编辑2:删除测量对象的使用。

p1tboqfb

p1tboqfb5#

目录**.txt -递归|选择全名,@{name=“行数”;表达式={ @(获取内容$_.全名).计数}}

4bbkushb

4bbkushb6#

打印文件名和行数:

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

h4cxqtbf7#

因为我需要类似的东西,这就是我想出来的。
一种文件类型:获取子项递归筛选器“.cs”|获取内容|测量对象线
多种文件类型:获取子项-递归-包括“
. cs”、“. aspx”、“.ascx”|获取内容|测量对象线

hkmswyz6

hkmswyz68#

递归计算项目文件夹中*.c文件的代码行(不包括空行)

Get-ChildItem -Path \project-dir\src -Filter "*.c" -Recurse | ForEach-Object{(Select-String -Path $_ -Pattern .).Count} | Measure-Object -Sum

Count             : 14
Average           :
Sum               : 979
Maximum           :
Minimum           :
StandardDeviation :
Property          :
42fyovps

42fyovps9#

目录中文件的No. of lines计数:

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

计算目录中文件的SUM of lines

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

相关问题