我导入了一个csv文件
$infile = import-csv .\myfile.csv
现在我可以通过
显示列(现在是对象属性)$infile | gm -type NoteProperty
Name MemberType
------- ----------
Column1 NoteProperty
Column2 NoteProperty
etc...
我想要做的是将Name(Column1..)
的值变为变量。
答案 0 :(得分:5)
您可以使用select
$infile | gm -type NoteProperty | select -ExpandProperty Name
如,
$Names = @( $infile | gm -type NoteProperty | select -ExpandProperty Name )
答案 1 :(得分:1)
另一种方法是通过PSObject
:
$infile[0].PSObject.Properties |
? { $_.MemberType -eq 'NoteProperty' } |
select -Expand Name
使用$infile[0]
选择集合中的第一个对象,否则.PSObject.Properties
将返回集合的属性而不是集合元素的属性。
答案 2 :(得分:0)
这应打印Column1
:
$infile = import-csv .\myfile.csv
$gm = $infile | gm -type NoteProperty
$name = $gm[0].Name
$name
答案 3 :(得分:0)
使用powershell导入cdv文件时,我通常会指定一个多于一个值的分隔符。希望这有助于所有人。
示例csv文件
Key ValueA ValueB
ref1 valueA1 valueB1
ref2 valueA2 valueB2
使用记事本打开csv文件时
Key;ValueA;ValueB
ref1;valueA1;valueB1
ref2;valueA2;valueB2
使用powershell将该csv文件导入变量
$Hash = Import-Csv -path d:\test.csv -Delimiter ';'
使用powershell查询csv文件
$Hash = Import-Csv -path d:\test.csv -Delimiter ';' |? {$_.ValueA -eq 'x' -and $_.ValueB -eq 'y'} | Select -exp Key