2013-05-02 38 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