PowerShell脚本修改需求:将日志行数统计改为数值乘积输出
修改PowerShell脚本实现行数乘以5输出
首先需要注意:原脚本中使用-ReadCount 10参数时,(Get-Content $_.FullName -ReadCount 10).Length统计的是按10行分组后的块数,并非文件的实际行数,这会导致统计结果错误。需要先修正获取实际行数的方式,再将行数乘以5。
修改后的脚本
Get-ChildItem 'C:\temp\log\' | ForEach-Object { @' Computer name - {0} {1} ............................ '@ -f $_.Name, ((Get-Content $_.FullName | Measure-Object -Line).Lines * 5) } | Out-File 'C:\temp\output.txt'
关键修改说明
- 替换行数统计逻辑:用
(Get-Content $_.FullName | Measure-Object -Line).Lines获取文件的实际总行数,这种方式比直接用(Get-Content $_.FullName).Count更高效,尤其是处理大日志文件时。 - 乘以5计算结果:在获取到的行数后直接乘以
5,得到最终需要输出的数值。 - 优化计算机名显示:将
$_改为$_.Name,避免输出文件的完整路径,只显示计算机名称(日志文件名)。
如果你的日志文件中还包含非内容为5的行,需要过滤出仅内容为5的行再统计,脚本可以调整为:
Get-ChildItem 'C:\temp\log\' | ForEach-Object { @' Computer name - {0} {1} ............................ '@ -f $_.Name, ((Get-Content $_.FullName | Where-Object { $_ -eq '5' } | Measure-Object -Line).Lines * 5) } | Out-File 'C:\temp\output.txt'
内容的提问来源于stack exchange,提问作者MrCodeX
相关产品推荐
相关产品推荐

