Powershell脚本,用于计算与包含特定字符的行匹配的行数

Powershell脚本,用于计算与包含特定字符的行匹配的行数,powershell,Powershell,我对powershell很陌生 在编写脚本以计算VisualStudio项目中的总行数时需要帮助,前提是我忽略(忽略)代码中的注释行。Eg:单引号我不需要考虑文件的行数。 到目前为止,我已经成功地编写了基于文件类型(比如*.vb等)计算项目中行数的脚本。如下 (dir -include *.cs,*.xaml -recurse | select-string .).Count 我现在需要如何在计数时忽略以单引号开头的行 你能推荐一些我可以包括在上面代码行中的东西吗 任何帮助都将不胜感激 谢

我对powershell很陌生

在编写脚本以计算VisualStudio项目中的总行数时需要帮助,前提是我忽略(忽略)代码中的注释行。Eg:单引号我不需要考虑文件的行数。

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

(dir -include *.cs,*.xaml -recurse | select-string .).Count
  • 我现在需要如何在计数时忽略以单引号开头的行
  • 你能推荐一些我可以包括在上面代码行中的东西吗
任何帮助都将不胜感激

谢谢, Ashish

试试看

(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"} }

这一行不计算空行、以“开头的行以及包含/*或*/”的行。

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

Get-Content file.ext | Where-Object {$_ -notmatch "(\s?)+'"} | Measure-Object

谢谢你的回复。但是已经有了这样的代码来计算文件中的行数。你能建议一些我可以根据现有代码行标记的东西吗?@ashishg你能重新表述这个问题吗?在你的OP中,你要求计算行数,排除以“开头的行,并且提供的所有答案都在做这项工作。其想法是将你的代码与我的代码合并(如OP中)。我是否可以执行以下操作-(gc$filetypes-recurse |?{!$\u.startswith(“')}选择字符串。).Count?-(此处$filetypes=“.vb”、“.asmx.”等)我有多个文件夹中的文件要检查。此外,我还想检查多个标识符(运算符),如“,/*,*/,空行,空格等。如果该行包含任何这些标识符,则不包括在计数中。谢谢您的时间。@ashishg我不明白您为什么需要
选择字符串。
?我参考了这里给出的示例-。实际上,您给出的脚本是有效的,我唯一想要的不是检查gc之后提到的文件名,而是检查文件类型,并检查多个文件夹中的所有文件扩展名。但是我不确定是否可以在这里使用-recurse和gc。如果你能帮助我测试多个操作员,那也太好了。谢谢你的回复。但是已经有了这样的代码来计算文件中的行数。你能建议一些我可以根据我的需求在现有代码行上标记的东西吗。