3

我对powershell很陌生。

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

到目前为止,我已经成功编写了用于根据文件类型(比如 *.vb 等)计算项目中行数的脚本。像下面

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

任何帮助将不胜感激!

谢谢,阿希什

4

2 回答 2

6

Try

(gc c:\file.vb | ? { !$_.startswith("'") }).count

Edit after comment:

try this:

dir c:\myfolder -include *.cs,*.xaml,*.txt -Recurse | % { $count = (gc $_ |  ? { $_ -notmatch '^\s*$|^''|/\*|\*/' }).count; if ($count) {write-host "$_ `tcount: $count"} }

this one count no empty lines, no line starting with ' and no lines containing /* or */.

于 2012-07-19T13:08:22.627 回答
1

获取所有不以单引号开头的行,即使它前面有前导空格或制表符。将结果通过管道传输Measure-Object到计数行。

Get-Content file.ext | Where-Object {$_ -notmatch "(\s?)+'"} | Measure-Object
于 2012-07-19T13:15:46.213 回答