PowerShell多文件行数统计及CSV写入、指定行起始计数问题求助
解决PowerShell统计指定行后行数并导出CSV的问题
完整解决脚本
Get-ChildItem -Path C:\Logs\test\*.log | Select-Object -Property FullName,@{ Name="LineCount" Expression={ # 跳过前8行,统计剩余行数 (@(Get-Content -Path $_.FullName | Select-Object -Skip 8)).Length } } | Export-Csv -Path C:\Logs\OP.csv -NoTypeInformation
问题1:将统计结果写入CSV文件
你之前用Out-File是错误的,因为脚本输出的是带属性的PowerShell对象,Out-File仅输出文本表格,而Export-Csv是专门处理对象生成标准CSV的cmdlet:
- 用
Export-Csv -Path C:\Logs\OP.csv -NoTypeInformation替代原Out-File命令 -NoTypeInformation参数会移除CSV开头的PowerShell类型注释,让生成的CSV可直接被Excel等工具识别
问题2:从指定行开始统计行数
要从第9行开始统计,核心是跳过前8行后计算剩余行数:
- 在
Get-Content后添加管道| Select-Object -Skip 8,过滤掉前8行内容 - 将过滤后的内容转为数组并取
Length属性,得到的就是从第9行到文件末尾的行数 - 若文件总行数不足8行,结果会返回0,不会抛出异常
示例文件中第8行是
END OF HEADER,跳过前8行后正好统计从第9行开始的数据行数量,匹配你的需求
内容的提问来源于stack exchange,提问作者Hawfinch Taylor
相关产品推荐
相关产品推荐

