Powershell管道仅返回集合的最后一个成员
我在管道中运行以下脚本时遇到问题:Powershell管道仅返回集合的最后一个成员,powershell,powershell-2.0,pipeline,Powershell,Powershell 2.0,Pipeline,我在管道中运行以下脚本时遇到问题: Get-Process | Get-MoreInfo.ps1 问题是只显示集合的最后一个进程。如何在以下脚本中处理集合的所有成员: param( [Parameter(Mandatory = $true,ValueFromPipeline = $true)] $Process ) function Get-Stats($Process) { New-Object PSObject -Property @{ Name = $Process.P
Get-Process | Get-MoreInfo.ps1
问题是只显示集合的最后一个进程。如何在以下脚本中处理集合的所有成员:
param( [Parameter(Mandatory = $true,ValueFromPipeline = $true)]
$Process
)
function Get-Stats($Process)
{
New-Object PSObject -Property @{
Name = $Process.Processname
}
}
Get-Stats($Process)
试试这个:
param( [Parameter(Mandatory = $true,ValueFromPipeline = $true)]
$Process
)
process{
New-Object PSObject -Property @{
Name = $Process.Processname}
}
编辑:
如果您需要一个函数:
function Get-MoreInfo {
param( [Parameter(Mandatory = $true,ValueFromPipeline = $true)]
$Process
)
process{
New-Object PSObject -Property @{
Name = $Process.Processname}
}
}
然后您可以使用:
. .\get-moreinfo.ps1 #
Get-Process | Get-MoreInfo
评论后编辑:
试试这个:
param( [Parameter(Mandatory = $true,ValueFromPipeline = $true)]
$Process
)
process{
New-Object PSObject -Property @{
Name = $Process.Processname}
}
编辑:
如果您需要一个函数:
function Get-MoreInfo {
param( [Parameter(Mandatory = $true,ValueFromPipeline = $true)]
$Process
)
process{
New-Object PSObject -Property @{
Name = $Process.Processname}
}
}
然后您可以使用:
. .\get-moreinfo.ps1 #
Get-Process | Get-MoreInfo
评论后编辑:
如果您只需创建
Get MoreInfo
作为过滤器而不是函数,您将获得所需的效果
Filter Get-MoreInfo
{
param( [Parameter(Mandatory = $true,ValueFromPipeline = $true)]
$Process
)
...
如果您只需创建
Get MoreInfo
作为过滤器而不是函数,您将获得所需的效果
Filter Get-MoreInfo
{
param( [Parameter(Mandatory = $true,ValueFromPipeline = $true)]
$Process
)
...
事实上,克里斯蒂安的答案和特伯格斯泰特的答案都是正确的——它们本质上是等价的。您可以在我最近在Simple-Talk.com上的文章中了解更多关于如何以及为什么这样做的信息: 简言之,以下是要点:
事实上,克里斯蒂安的答案和特伯格斯泰特的答案都是正确的——它们本质上是等价的。您可以在我最近在Simple-Talk.com上的文章中了解更多关于如何以及为什么这样做的信息: 简言之,以下是要点:
我想使用一个函数,但无法使其工作。您是否介意制作一个完整的示例,并扩展您所说的
的含义?在实际的powershell contole中准备好函数
?我的答案中的代码有效-你复制粘贴了吗?什么不起作用?我已经在我的答案上添加了一个链接来阅读关于dot采购的内容。我想使用一个函数,但无法使其工作。您是否介意制作一个完整的示例,并扩展您所说的的含义?在实际的powershell contole中准备好函数
?我的答案中的代码有效-你复制粘贴了吗?什么不起作用?我已经在我的答案上添加了一个链接来阅读关于dot采购的内容。有关于过滤器的文档吗?我刚刚在一些网站上找到了关于_过滤器的信息,但在technet网站上没有。我不知道,在阅读Bruce Payette()的《Powershell in Action》时了解了该功能。这本书是我真正推荐的。有关于过滤器的文档吗?我刚刚在一些网站上找到了关于_过滤器的信息,但这在technet网站上不可用。我不知道,在阅读Bruce Payette()的《Powershell in Action》时了解到了这一功能,这是一本我真正推荐的书。