gpt4 book ai didi

powershell - Out-GridView 显示一个空白列,其中有实际数据

转载 作者:行者123 更新时间:2023-12-03 13:09:52 25 4
gpt4 key购买 nike

我有这个 CSV 文件。

实际的 CSV 数据以“;”分隔, 像这样:

[2017-04-27 15:45:04] ;x;/x;Succes;

您可以看到有一列“Terminaison”,其中包含成功或失败的信息。我的目标是在 Gridview 中显示文件的所有列。

我正在做 :
import-csv "C:\x\Journal\Capsule\CapsulePoste.csv" -Delimiter ";"

并使用包含正确数据的所有列获得所需的输出:

现在我的问题是:当我想在 GridView 中显示所有内容时,“终止”列全是空的?为什么?所有其他列都正确显示... :
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

最佳答案

这是导入 CSV 后修复它的通用方法:

$CSV = import-csv "C:\x\Capsule\CapsulePoste.csv" -Delimiter ";"

$FixedObject = $CSV | ForEach-Object {
$NewObject = New-Object -TypeName PSCustomObject
$_.PSObject.Properties | ForEach-Object { $NewObject | Add-Member -Name $_.Name.Trim() -Value $_.Value -MemberType $_.MemberType }

$NewObject
}

$FixedObject | Out-GridView

这将遍历每个结果对象的属性,然后创建一个具有相同属性的新对象,但在每个对象的名称上运行 .Trim() 方法以删除任何周围的空白。

这显然比在导入之前修复 CSV 文件效率低,但是如果您不能确定标题行出现在 CSV 中的哪个位置(因为它并不总是第一个),那么这样做(通常)也可能会很棘手。

当然,如果您只想解决这个特定场景,另一个答案是最简单的。

关于powershell - Out-GridView 显示一个空白列,其中有实际数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48171012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com