我对powershell很新。
需要帮助编写一个脚本来计算visual studio项目中的总行数,前提是我省略(忽略)代码中的注释行。例如:<'>单引号,如在vb.net中。无论哪一行被评论,即以<'>开头。单引号我不需要考虑文件的行数。
到目前为止,我已经成功编写了基于文件类型(例如* .vb等)计算项目中行数的脚本。如下所示
(dir -include *.cs,*.xaml -recurse | select-string .).Count
非常感谢任何帮助!
谢谢, 阿希什
答案 0 :(得分:6)
尝试
(gc c:\file.vb | ? { !$_.startswith("'") }).count
评论后编辑:
试试这个:
dir c:\myfolder -include *.cs,*.xaml,*.txt -Recurse | % { $count = (gc $_ | ? { $_ -notmatch '^\s*$|^''|/\*|\*/' }).count; if ($count) {write-host "$_ `tcount: $count"} }
这个没有空行,没有以'开头的行,没有包含/ *或* /。
的行答案 1 :(得分:1)
获取所有不以单引号开头的行,即使前面有前导空格或制表符。将结果传递给Measure-Object
以计算行数。
Get-Content file.ext | Where-Object {$_ -notmatch "(\s?)+'"} | Measure-Object