将txt文件转换为csv并忽略特定文本Line

时间:2017-11-06 14:13:05

标签: powershell powershell-v3.0

TXT file output

$userObj = [PSCustomObject]((Get-Content -Raw C:\Automation\sam.txt) -replace ':', '=' | ConvertFrom-StringData)
$name = Get-Item C:\Automation\sam.txt | Select-Object -ExpandProperty BaseName
$userObj | Export-Csv C:\Automation\$name.csv 

我使用上面的脚本将txt文件转换为CSV,但我不知道如何用带下划线的字符排除单词Line。

如果我删除“Line ----”并尝试。

,该脚本可以正常工作

1 个答案:

答案 0 :(得分:0)

导入文件时跳过前两行:

$data = (Get-Content 'C:\path\to\input.txt') -replace ':', '=' |
        Select-Object -Skip 2 |
        Out-String |
        ConvertFrom-StringData
[PSCustomObject]$data | Export-Csv 'C:\path\to\output.csv' -NoType

更好的是,更改创建输入文件的过程,以便它不会产生有问题的标题。数据似乎是由

之类的东西生成的
... | Select-String ... | Select-Object Line | Set-Content ...

要从输出中删除标题,您只需将Select-Object Line更改为Select-Object -Expand Line