【发布时间】:2017-10-13 11:37:13
【问题描述】:
代码:
$Computers = Import-Csv -Path C:\temp\Computers.csv
write-host $Computers
CSV 文件(其中 US-1 为 A1,US-2 为 A2,依此类推)
US-1
US-2
US-3
US-4
我相信 Import-Csv 导入不正确,因为 Write-Host $Computers 给了我这个:
@{US-1=US-2} @{US-1=US-3} @{US-1=US-4}
但是如果 $Computers 是这样分配的:
$Computers = "US-1", "US-2", "US-3", "US-4"
输出正确:
US-1 US-2 US-3 US-4
因此,为了方便起见,我需要从 CSV 导入,但要以正确的方式保存每个计算机名称,不带括号或符号。这使得在我的程序的其余部分中使用计算机名称非常困难。
编辑:如上所述,我已经正确格式化了 csv,现在是这样的:
Computers,
US-1
US-2
US-3
US-4
现在得到输出:
@{Computers=US-1} @{Computers=US-2} @{Computers=US-3} @{Computers=US-4}
【问题讨论】:
-
奇怪的输出。 $Computers 是什么数据类型?
-
默认数据类型,很可能是字符串,不确定。如果我为堆栈溢出创建的整个测试程序,你会看到什么
-
发布您的 CSV 文件样本
-
$Computers.gettype() 的输出是什么?
-
Import-csv 将第一条记录解释为标题,而您希望它是数据。因此,它将 csv 数据解码为一个字段,命名为 US-1。请参阅下面 Jeff Zeitlin 的回答。
标签: powershell csv