【问题标题】:PowerShell: Export Data from Specific Row Number from multiple files and export to one csvPowerShell:从多个文件中导出特定行号的数据并导出到一个 csv
【发布时间】:2021-09-22 20:20:26
【问题描述】:

初学者...

我在一个文件夹中有 30 多个 .dat 文件,需要从每个文件中导出第 10 行并编译成一个 csv 文件。

我知道我在正确的路线上,但不确定中间部分 - 这就是我所在的地方......

    Get-ChildItem -Path C:\Users\pitters\Folder\* -Include *.dat -Recurse
    ForEach-Object { 
    Select-Object -Skip 9 -First 1 } 
    Export-CSV -Path Users\pitters\Folder\output.csv

我错过了 Get-Content 吗?谁能帮助解决需要纠正的问题?

提前致谢。 马特

【问题讨论】:

  • 您希望生成的 CSV 中有哪些列?

标签: powershell


【解决方案1】:

正如您自己提到的,您需要调用Get-Content 来实际读取文件内容。此外,您还需要构造一个具有与您想要在 CSV 文件中的列相对应的适当属性的对象 - 我们可以直接使用 Select-Object 执行此操作:

Get-ChildItem -Path C:\Users\pitters\Folder\* -Include *.dat -Recurse |ForEach-Object { 
    $file = $_
    $file |Get-Content |Select-Object @{Name='Line10';Expression={$_}},@{Name='File';Expression={$file.FullName}} -Skip 9 -First 1 
} |Export-CSV -Path Users\pitters\Folder\output.csv

【讨论】:

  • 谢谢 - 得到以下响应:'Export-CSV : 找不到路径的一部分'C:\Users\pitters\Folder\Users\pitters\Folder\output.csv '。在 C:\Users\pitters\Documents\Get Content.ps1:12 char:4 + } |Export-CSV -Path Users\pitters\Folder\output.csv + ~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : OpenError: (:) [Export-Csv], DirectoryNotFoundException + FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.ExportCsvCommand'
  • 听起来你目前不在C: - 尝试将路径更改为C:\Users\pitters\Folder\output.csv
  • @Pitmo 太棒了!如果我的回答解决了您的问题,请考虑通过单击左侧的复选标记将其标记为“已接受”:-)
  • 完成 - 我确实在寻找类似的东西,但没看到 :-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-18
  • 2019-02-25
  • 1970-01-01
相关资源
最近更新 更多