许多C#解决方案的代码行计数

Eri*_*ric 14 c# lines-of-code file count

我目前正在研究一种在C#中计算代码行数的解决方案.

我非常需要以下两种工具的组合:
http://richnewman.wordpress.com/2007/07/01/c-and-vbnet-line-count-utility/
http://www.locmetrics.com/的index.html

我的问题是我需要递归扫描包含许多visual studio解决方案的文件夹.因此,如果没有对其代码进行任何重大工作,就无法真正使用第一个工具,因为它一次只能扫描一个解决方案.
但我还需要为每个解决方案分割结果,最好是包含项目.这取消了我找到的第二个工具的资格.我还发现NDepend遇到了同样的问题.

你知道任何我需要的免费工具吗?我找不到合适的东西.

Mit*_*eat 20

NDepend是一个很好的工具,用于测量和可视化代码指标和复杂性.

Powershell会这样做:

(dir -Include *.cs -Recurse | select-string .).Count
Run Code Online (Sandbox Code Playgroud)

在PowerShell中计算源代码行:

每个路径的行数:

   gci . *.cs -Recurse | select-string . | Group Path
Run Code Online (Sandbox Code Playgroud)

最低/最高/平均:

   gci . *.cs -Recurse | select-string . | Group Filename | Measure-Object Count -Min -Max -Average
Run Code Online (Sandbox Code Playgroud)

评论比例:

   $items = gci . *.cs -rec; ($items | select-string "//").Count / ($items | select-string .).Count


## Count the number of lines in all C# files in (and below) 
## the current directory. 

function CountLines($directory) 
{ 
    $pattern = "*.cs" 
    $directories = [System.IO.Directory]::GetDirectories($directory) 
    $files = [System.IO.Directory]::GetFiles($directory, $pattern) 

    $lineCount = 0 

    foreach($file in $files) 
    { 
        $lineCount += [System.IO.File]::ReadAllText($file).Split("`n").Count 
    } 

    foreach($subdirectory in $directories) 
    { 
        $lineCount += CountLines $subdirectory 
    } 

    $lineCount 
} 

CountLines (Get-Location) 
Run Code Online (Sandbox Code Playgroud)

还有,行计数器

  • @Eric - 如果你不计算评论和自动生成的代码,你的工作效率会下降.:-) (4认同)