我有一个管道损坏的文件作为分隔符(Hex A6?)
我正在尝试使用powershell(导入CSV)
来读取该文件Import-Csv .\a.dat -delimiter "¦"
但是,没有任何内容正在阅读中。任何帮助都可以解析它。
样本数据集:
F1 ¦ Part 1 ¦ 51322 ¦ 176
F2 ¦ Part 2 ¦ 473976 ¦ 150
F3 ¦ Part 3 ¦ 7327 ¦ 82
答案 0 :(得分:3)
看起来您的文件编码已关闭。尝试使用-Encoding UTF7
参数。在我的测试中,这似乎得到了你所追求的结果。
Import-Csv -Path C:\test\a.dat -Delimiter ([char]166) -Encoding UTF7;
答案 1 :(得分:0)
Import-CSV绝对不喜欢使用它作为分隔符 这是一种解决方法(需要V3,但可以适应早期版本):
$file = 'c:\testfiles\file.txt'
$char = [char]166
$Cols = 'Col1','Col2','Col3','Col4'
Get-Content $file |
Foreach {
$ht=[ordered]@{}
$parts = $_.split($char)
0..($Cols.count -1) |
foreach {$ht[$cols[$_]] = $Parts[$_].trim()}
[PSCustomObject]$ht
} | Format-Table -AutoSize
Col1 Col2 Col3 Col4
---- ---- ---- ----
F1 Part 1 51322 176
F2 Part 2 473976 150
F3 Part 3 7327 82
答案 2 :(得分:0)
作为解决方法,我用常规管道替换了破裂管道。现在,我能够毫无问题地阅读该文件。
(Get-Content .\a.dat) -replace '¦', '|' | Out-File b.dat
感谢您的帮助!