在PS中,使用 Select-Object
时, -Property
参数“指定要选择的属性”:
The value of the Property parameter can be a new calculated property. To create a calculated, property, use a hash table.
Valid keys are:
- Name:
<string>
- Expression:
<string>
or<script block>
作为起点,这里有一个 anonymous object
$person = [pscustomobject]@{
FirstName = "Kyle";
LastName = "Mit"
}
以下计算的属性工作得很好:$person | Select-Object 'FirstName', 'LastName',
@{
Name="FullName";
Expression= { "$($_.FirstName) $($_.LastName)" }
}
哪个正确返回以下内容:FirstName LastName FullName
--------- -------- --------
Kyle Mit Kyle Mit
然而 ,我正在尝试构建一个计算属性,该属性需要一些复杂的逻辑并且需要多行来实现。只要表达式中有另一个返回值,就会返回两个值。所以下面的查询将返回
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
似乎没有帮助。有任何想法吗?
最佳答案
只需用 Out-Null
扔掉不需要的表达式结果.:
$person | Select-Object 'FirstName', 'LastName',
@{
Name="FullName";
Expression= {
"test" -eq "example" | out-null
return "$($_.FirstName) $($_.LastName)"
}
}
关于powershell - 在 PowerShell 中的多行计算属性中显式返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59901298/