PowerShell:Import-CSV返回的标头名称和方括号不在源文件中

时间:2018-09-25 15:33:39

标签: powershell csv

我确定这最终将变得非常简单,但我无法弄清楚。

我正在编写一个脚本以读取CSV文件。然后,我有了一个循环,该循环对导入的CSV中的对象运行命令。但是,我收到的大量无关数据使我感到悲伤。

导入命令:

$fixme = Import-Csv C:\temp\scripts\rename_script\oldname1.csv -Header OldName,NewName

此文件的内容:

Computer1,Computer2
Computer3,Computer4

我想做的是能够调用$ fixme.OldName和$ fixme.NewName。问题是,这是我得到的输出:

$fixme
@{OldName=Computer1; Newname=Computer2}
@{OldName=Computer3; Newname=Computer4}

$fixme.OldName
[nothing]

$fixme.NewName
[nothing]

我在这里想念什么?

我还应该补充一点,这是测试数据,实际上我有数百行要遍历,我已经在工作,只是出于某种原因我无法弄清楚如何从此dang中传递正确的数据CSV。

1 个答案:

答案 0 :(得分:0)

因此,在底部脚本中,您没有将 $ fixme 设置为相等。您应该将这些哈希表放入数组

$fixme = @(
    @{OldName='Computer1'; Newname='Computer2'},
    @{OldName='Computer3'; Newname='Computer4'}
)

$fixme | %{ $_.oldname }

$fixme | %{ $_.newname }

对于第一个脚本,我能够使其运行

$CSV = @"
Computer1,Computer2
Computer3,Computer4
"@

$fixme = $CSV | ConvertFrom-Csv -Header OldName, NewName
$fixme.OldName
$fixme.NewName