将 txt 文件转换为 csv 并忽略特定文本行
Convert txt file to csv and ignore specific text Line
$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 ---- " 并尝试,该脚本会起作用。
导入文件时跳过前两行:
$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
更好的是,更改创建输入文件的过程,这样它就不会产生有问题的 header。数据似乎是由
之类的东西生成的
... | Select-String ... | Select-Object Line | Set-Content ...
要从输出中删除 header,您只需将 Select-Object Line
更改为 Select-Object -Expand Line
。
$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 ---- " 并尝试,该脚本会起作用。
导入文件时跳过前两行:
$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
更好的是,更改创建输入文件的过程,这样它就不会产生有问题的 header。数据似乎是由
之类的东西生成的... | Select-String ... | Select-Object Line | Set-Content ...
要从输出中删除 header,您只需将 Select-Object Line
更改为 Select-Object -Expand Line
。