Powershell: 引用包含空格的属性

我正在导入一个 CSV 文件使用 Powershell。

问题是,其中一栏的标题是“剩余时间-时间”。 所以我得到了一个对象序列,它实际上被赋予了属性“剩余时间-小时”。

引用此属性的语法是什么?

例句

Import-Csv AllOpenCases.csv | % {$case = $_ }
$case | get-member

报税表

Category               : Inquiry
Starred                : No
Remaining Time - Hours : 22.5

但如果我打字

$case.Remaining Time - Hours

我在表达或语句中得到“意外标记‘ Time’”

72103 次浏览

当引用具有嵌入空格的属性时,必须引用它们:

 $case."Remaining Time - Hours"

或者您也可以将该属性包装在{}中,如下所示:

 $case.{Remaining Time - Hours}

只是添加,属性名本身可以是一个变量,例如:

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

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