Powershell:引用包含空格的属性

And*_*erd 52 csv powershell

我正在使用powershell导入CSV文件.

问题是,其中一列的标题是"剩余时间 - 小时".所以我得到了一系列对象,它实际上被分配了属性"剩余时间 - 小时".

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

例如

Import-Csv AllOpenCases.csv | % {$case = $_ }
$case | get-member
Run Code Online (Sandbox Code Playgroud)

回报

Category               : Inquiry
Starred                : No
Remaining Time - Hours : 22.5
Run Code Online (Sandbox Code Playgroud)

但如果我输入

$case.Remaining Time - Hours
Run Code Online (Sandbox Code Playgroud)

我在表达式或语句中得到"意外的令牌'时间'"

mjo*_*nor 92

具有嵌入空格的属性在引用时必须引用:

 $case."Remaining Time - Hours"
Run Code Online (Sandbox Code Playgroud)

  • 谢谢.对网站没有任何冒犯,但我认为这样的评论比积分和徽章更好. (4认同)

Kei*_*ill 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
Run Code Online (Sandbox Code Playgroud)


rav*_*nth 18

或者您也可以在{}中包装该属性.像这样:

 $case.{Remaining Time - Hours}
Run Code Online (Sandbox Code Playgroud)


mjo*_*nor 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
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢你创造物体的方式.之前还没见过convertfrom-stringdata ... (2认同)