2012-01-09 2 views
3

У меня есть следующий сценарий.Powershell распечатать содержимое труб?

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 char: 81 + Get-Job | ? {$ .State -eq 'Completed'} | % {echo "Удалено: $"} | Remove-Job < < < < + CategoryInfo: InvalidArgument: (Удалены: Система ... n.PSRemotingJob: PSObject) [Re-ход работы], ParameterBindingException + FullyQualifiedErrorId: InputObjectNotBound, Microsoft.PowerShell.Commands.RemoveJobComman
d

ответ

6

вы можете сделать так, чтобы держать это просто:

get-job | ?{$_.state -eq "Completed"} | 
    %{ Remove-Job $_; Write-host "Removed $($_.Name)" } 

За то, что вы пытаетесь работать, вы должны сделать:

get-job | ?{$_.state -eq "Completed"} | %{write-host "Removed: $($_.Name)"; $_} | 
    Remove-Job 

Обратите внимание на $_, передав работу обратно в трубопровод.

+0

В некоторых Remove-cmdlets есть -PassThru, чтобы облегчить жизнь, и позвольте избежать этого типа кода. К сожалению, Remove-Job не является одним из них. –

+0

@ Start-Automating - Я думаю, почему у команды Remove был бы passthru? – manojlds

+0

@manojlds ... по причинам вроде этого. Вы можете сказать, удалить элемент из коллекции, но хотите вернуть этот элемент. Из коробки я вижу два: Get-Command -Verb Удалить | Where-Object {$ _. Parameters.PassThru} Имеет смысл для меня (Remove-Computer - прохождение по списку имен компьютеров). Там другое делает мне гораздо меньше смысла (удаление snapins). Существует много ситуаций, когда удаление опасно с точки зрения памяти, потому что ссылка на объект может быть удалена или потому, что вид удаленного объекта может быть «HeisenBug». –

Смежные вопросы