В PS при использовании Select-Object
параметр -Property
"определяет свойства для выбора":
Значение параметра Property может быть новым Рассчитанное свойство . Для создания вычисляемого свойства используйте таблицу ha sh.
Допустимые ключи:
- Имя :
<string>
- Выражение :
<string>
или <script block>
В качестве отправной точки приведем анонимный объект
$person = [pscustomobject]@{
FirstName = "Kyle";
LastName = "Mit"
}
Следующее вычисленное свойство работает просто отлично:
$person | Select-Object 'FirstName', 'LastName',
@{
Name="FullName";
Expression= { "$($_.FirstName) $($_.LastName)" }
}
, которое правильно возвращает следующее:
FirstName LastName FullName
--------- -------- --------
Kyle Mit Kyle Mit
Однако , я пытаюсь построить вычисляемое свойство, которое требует сложной логики c и требует нескольких строк для реализации. Как только у меня есть другое возвращаемое значение внутри выражения, оба значения возвращаются.
Таким образом, следующий запрос вернет FullName
как { false, "Kyle Mit" }
$person | Select-Object 'FirstName', 'LastName',
@{
Name="FullName";
Expression= {
"test" -eq "example"
return "$($_.FirstName) $($_.LastName)"
}
}
, который возвращает следующее:
FirstName LastName FullName
--------- -------- --------
Kyle Mit {False, Kyle Mit}
Но я пытаюсь явно вернуть только последнее утверждение. Определение с помощью ;
или return
, похоже, не помогает.
Есть идеи?