【发布时间】:2017-10-22 04:49:36
【问题描述】:
目前我正在这样做:
function Invoke-Service
{
Param(
[parameter(Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true)]
[int] $Id,
[parameter(Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true)]
[string] $Name,
[parameter(Mandatory=$true,
ValueFromPipeline=$true,
ValueFromPipelineByPropertyName=$true)]
[int] $Age
)
DoSomeWork |
New-Object PSObject -Property @{ Id = $Id; Name = $Name; Age = $Age }
}
这个函数可以直接获取它的参数,也可以从Import-Csv输出,或者select输出。
但我经常想利用PSObject 的所有力量继续处理管道:
Import-Csv -Path "data.csv" |
Invoke-Service |
... #
我的问题是:我是否需要调用New-Object 枚举所有参数,或者是否有我错过的关键字或其他技术?
【问题讨论】:
标签: powershell parameter-passing pipeline psobject