2013-05-02 37 views
2

Powershell v3。按州和名稱獲取作業?

Start-Job -Name "TestJob" -ScriptBlock { Write-Host "foo" } 

工作開始正常。然後我型

Get-Job 

,我看到

Id Name  PSJobTypeName State  HasMoreData Location  Command 
-- ----  ------------- -----  ----------- --------  ------- 
18 TestJob BackgroundJob Completed True   localhost  Write-Host "foo" 

一切都在按目前計劃進行。但是現在讓我們說,我在這個會議中有很多工作正在運行,並且他們有不同的名字。所以,我想找到只有名爲TestJob的工作:

Get-Job -Name TestJob 

這也正是作品如預期,僅返回該名稱的作業。但是,現在讓我們說,我想找到既具有名稱TestJob 作業仍在運行:

PS C:\> Get-Job -Name TestJob -State Running 
Get-Job : Parameter set cannot be resolved using the specified named parameters. 
At line:1 char:1 
+ Get-Job -Name TestJob -State Running 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : InvalidArgument: (:) [Get-Job], ParameterBindingException 
    + FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Commands.GetJobCommand 

有沒有辦法做到這一點?

回答

6

請嘗試以下

Get-Job -State Completed | Where-Object {$_.Name.Contains("TestJob")} 

下面是根據你的榜樣樣品運行

PS D:\> Get-Job -State Completed | Where-Object {$_.Name.Contains("Job")} 

Id    Name   State  HasMoreData  Location    Command 
--    ----   -----  -----------  --------    ------- 
1    TestJob   Completed True   localhost    Write-Host "foo" 
3    TestJob   Completed True   localhost    Write-Host "foo" 

更多這方面的信息,請參閱Get-Help Where-Object

+1

這就是票。簡單。謝謝! – 2013-05-02 23:35:52

+0

很高興。 – 2013-05-02 23:41:01