Powershell脚本用于计算省略包含特定字符的行的行数

时间:2012-07-19 13:04:33

标签: powershell

我对powershell很新。

需要帮助编写一个脚本来计算visual studio项目中的总行数,前提是我省略(忽略)代码中的注释行。例如:<'>单引号,如在vb.net中。无论哪一行被评论,即以<'>开头。单引号我不需要考虑文件的行数。

到目前为止,我已经成功编写了基于文件类型(例如* .vb等)计算项目中行数的脚本。如下所示

(dir -include *.cs,*.xaml -recurse | select-string .).Count
  • 我现在需要在计算时如何忽略以单引号开头的行?
  • 你能否建议我可以包含上述代码行?

非常感谢任何帮助!

谢谢, 阿希什

2 个答案:

答案 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