【发布时间】:2018-06-18 15:42:49
【问题描述】:
我有这个 CSV 文件。
实际的 CSV 数据用“;”分隔,像这样:
[2017-04-27 15:45:04] ;x;/x;Succes;
您可以看到有一个“Terminaison”列,其中包含成功或失败信息。我的目标是在 Gridview 中显示文件的所有列。
我在做:
import-csv "C:\x\Journal\Capsule\CapsulePoste.csv" -Delimiter ";"
并获得包含正确数据的所有列的所需输出:
现在我的问题是:当我想在 GridView 中显示所有内容时,“terminaison”列全为空?为什么?所有其他列都正确显示...:
import-csv "C:\x\Journal\Capsule\CapsulePoste.csv" -Delimiter ";" | out-gridview
我发现标题末尾的空格(csv 文件的第一行)导致了这个...
Date;Trousse;Version;Demandeur;Action;Paramètres;Terminaison
(“Terminaison”后面有一个空格)
如果我在记事本中编辑 csv 并删除该空格,宾果游戏,它可以工作。但是,这并不能解决我的问题,因为我不想事先编辑文件。这个奇怪的限制是什么?有解决方法吗?
编辑:
下面提供的答案很棒。我最终使用了另一个我认为值得增加可能性的选项:
$content = Get-Content C:\x\Journal\Capsule\CapsulePoste.csv
$content | Foreach {$_.TrimEnd()} | Set-Content C:\x\Journal\Capsule\CapsulePoste.csv
import-csv "C:\x\Journal\Capsule\CapsulePoste.csv" -Delimiter ";"| sort-object Date -descending
【问题讨论】:
-
Terminaison末尾有whitespace character吗? -
BenH,是的,这就是问题所在。如果我删除它,它的工作原理。但是我不想每次打开文件之前都必须编辑它......这是powershell中的错误吗?我发现的唯一另一件事是:windowsserver.uservoice.com/forums/301869-powershell/…
-
就我而言,我从对象中选择不同的列:)
标签: powershell import-csv