我有以下脚本。
Get-Job | ? { $_.State -eq 'Completed' } | Remove-Job
我想在一个链式管道中显示已删除的作业。以下脚本不起作用。
Get-Job | ? { $_.State -eq 'Completed' } | Remove-Job | % { echo "Removed: $_" }
以下是错误。
Get-Job | ? { $_.State -eq 'Completed' } | % { echo "Removed: $_" } | Remove-Job
Remove-Job:输入对象不能绑定到任何参数 该命令要么因为命令不接受管道输入 或者输入及其属性与任何参数都不匹配 采取管道输入。在线:2字符:81 + Get-Job | ? {$ .State -eq'已完成'} | %{echo“已移除:$ ”} |删除作业<<<< + CategoryInfo:InvalidArgument :(已移除:系统... n.PSRemotingJob:PSObject)[Re move-Job], ParameterBindingException + FullyQualifiedErrorId:InputObjectNotBound,Microsoft.PowerShell.Commands.RemoveJobComman
d
答案 0 :(得分:6)
您可以这样做以保持简单:
get-job | ?{$_.state -eq "Completed"} |
%{ Remove-Job $_; Write-host "Removed $($_.Name)" }
对于你想要的工作,你必须这样做:
get-job | ?{$_.state -eq "Completed"} | %{write-host "Removed: $($_.Name)"; $_} |
Remove-Job
注意$_
,将作业传递回管道。