我需要读取多个文件,并计算每个文件的行数。然后将所有这些信息写入一个带有文件路径信息的CSV文件中。
我可以写一个代码(从论坛的帮助下),这将有助于阅读所有文件和打印所需的信息。
- 脚本:**
Get-ChildItem -Path C:\Logs\test *.log | Select-Object -Property FullName,@{Name="LineCount";$Expression={@(Get-Content -Path $_.FullName).Length}}
- 脚本的输出:**
FullName LineCount
-------- ---------
C:\Logs\test\ANCD065.log 296
C:\Logs\test\ANCE066.log 287
- 问题:**
1.问题是无法将上述信息写入CSV文件。
Write "what parameter need pass not clear to me" | Out-File C:\Log\OP.CSV
1.脚本读取所有行,有没有办法在某些行之后开始读取行?给定文件need中的一个例子是从第9行(开始)到结束(可能是300)计数行。
1. 3.03 MET DATA RINEX VERSION / TYPE
2. cnvtToRINEX 3.14.0 convertToRINEX OPR 20220511 072939 UTC PGM / RUN BY / DATE
3. ----------------------------------------------------------- COMMENT
4. XYXTY3 MARKER NAME
5. UBWTZ3 MARKER NUMBER
6. 3 PR TD HR # / TYPES OF OBSERV
7. 0083019.4060 0025010.0967 0253356.6176 0.0000 PR SENSOR POS XYZ/H
8. END OF HEADER
9. 19 03 02 00 00 00 946.0 8.5 93.0
10. 19 03 02 00 05 00 946.0 8.4 93.4
11. 19 03 02 00 10 00 946.0 8.4 93.4
12. 19 03 02 00 15 00 946.0 8.4 94.2
13. 19 03 02 00 20 00 946.0 8.5 93.1
14. 19 03 02 00 25 00 946.1 8.7 90.2
15. 19 03 02 00 30 00 946.2 8.4 92.0
16. 19 03 02 00 35 00 946.3 8.3 93.2
1条答案
按热度按时间sh7euo9m1#
问题是无法将上述信息写入CSV文件。
这应该和向管道追加一个
Export-Csv
命令一样简单:请注意,我对
Select-Object
的更改只是为了提高代码可读性。脚本读取所有行,有没有办法在某些行之后开始阅读行?给定文件need中的一个例子是从第9行(开始)到结束(可能是300)计数行。
您可以使用
Select-Object -Skip n
从开始跳过给定的行数。另一个改进是使用Measure-Object
来计算项目数。在您当前的代码中,您必须将整个日志文件读入内存中的数组,然后才能计算行数。使用Measure-Object
,文件将被流式传输,需要更少的内存进行处理。完整解决方案: