【发布时间】:2018-12-18 16:18:23
【问题描述】:
我正在读取一个包含 25,000 条记录的 CSV 文件,并将每一列读入 psobject。这是我目前所拥有的:
$file = Import-CSV .\server.csv
$tempobj = New-Object psobject -Property @{
'Name' = $file.Name
'Group' = $file.Group
}
运行时,我得到了我想要的正确结果,因为$file.Name 包含所有服务器名称,$file.Group 包含服务器组。但是,我的问题是我需要在不干扰.Group 的情况下编辑每个服务器的名称。下面是一个服务器名称的示例。
我需要从每个服务器名称中删除 WindowsAuthServer @{ 和 WIN},只留下服务器名称,或者在本例中为 wdk9870。
我尝试使用 -replace 函数 ($tempobj.Name -replace "WindowsAuthServer @{",""),但它要求我将结果保存到一个新数组中,然后它会搞砸或完全删除 .Group
有没有其他方法可以做到这一点?我迷路了。
【问题讨论】:
-
每一列已经是
pscustomobject,因为您使用的是Import-Csv。您正在双重处理每条记录。此外,您正在查看pscustomobject的字符串表示形式;该字符串不是字面上的WindowsAuthServer @{wdk9870WIN}。键WindowsAuthServer包含值wdk9870WIN。
标签: powershell csv formatting psobject