我正在使用powershell导入CSV文件。
问题是,其中一列的标题是“剩余时间 - 小时”。 所以我得到了一系列对象,它实际上被分配了属性“剩余时间 - 小时”。
引用此属性的语法是什么?
例如
Import-Csv AllOpenCases.csv | % {$case = $_ }
$case | get-member
返回
Category : Inquiry
Starred : No
Remaining Time - Hours : 22.5
但如果我输入
$case.Remaining Time - Hours
我在表达式或语句中得到“意外的令牌'时间'”
答案 0 :(得分:88)
带引号空格的属性在引用时必须引用:
$case."Remaining Time - Hours"
答案 1 :(得分:23)
只需添加,属性名称本身可以是变量,例如:
PS> $o = new-object psobject -prop @{'first name' = 'John'; 'last name' = 'Doe'}
PS> $o
last name first name
--------- ----------
Doe John
PS> $prop = 'first name'
PS> $o.$prop
John
答案 2 :(得分:17)
或者您也可以在{}中包装该属性。像这样:
$case.{Remaining Time - Hours}
答案 3 :(得分:11)
FWIW,如果编码很麻烦,可以添加别名属性:
$caseprops = @"
Category = Inquiry
Starred = No
Remaining Time - Hours = 22.5
"@
$case = new-object psobject -property ($caseprops | convertfrom-stringdata)
$case | add-member aliasproperty "RT" "Remaining Time - Hours"
$case | fl
Remaining Time - Hours : 22.5
Starred : No
Category : Inquiry
RT : 22.5