Ответ 1
Свойства со встроенными пространствами должны быть указаны при ссылке:
$case."Remaining Time - Hours"
Я импортирую файл CSV с помощью powershell.
Проблема заключается в том, что заголовок одного из столбцов - "Оставшееся время - часы". Поэтому я получаю последовательность объектов, и на самом деле ей присвоено свойство "Оставшееся время - часы".
Каков синтаксис для ссылки на это свойство?
например,
Import-Csv AllOpenCases.csv | % {$case = $_ }
$case | get-member
возвращает
Category : Inquiry
Starred : No
Remaining Time - Hours : 22.5
но если я напечатаю
$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
Или вы можете также обернуть это свойство в {}. Вот так:
$case.{Remaining Time - Hours}
FWIW, если вам будет больно писать код, вы можете добавить свойство alias:
$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