如何使用PowerShell从cmdlet的输出中提取时间戳

时间:2018-05-23 00:06:47

标签: powershell

我在powershell中有一个cmdlet的以下输出,我想从输出中提取时间戳,以便我可以选择已经过时间的作业> 24小时

catch

输出

Command : Get-JAMSEntry -Name * -Server xxxxxx -State Executing

感谢帮助。

由于

1 个答案:

答案 0 :(得分:1)

当您将命令的输出传递给Select-Object时,通过首先在,然后在:分割描述来插入计算的属性:

Get-JAMSEntry -Name * -Server xxxxxx -State Executing |
    Select-Object Entry,Name,@{n='State';e={$_.Description.split(',')[0]}},
        @{n='ElapsedHrs';e={($_.Description.Split(',')[1]).Split(':')[1].Trim()}}

你会得到这个输出:

Entry Name   State     ElapsedHrs
----- ----   -----     ----------
1     Sample Executing 602.18
3     Sample Executing 481.18
5     Sample Halted    484.18
7     Sample Hold      680.18
7     Sample Executing 680.18
7     Sample Executing 680.18
9     Sample Halted    666.18
1     Sample Halted    684.18

你可以用附加的

进一步减少
|Where-Object {[double]$_.ElapsedHrs -gt 670}

仅获取匹配值

Entry Name   State     ElapsedHrs
----- ----   -----     ----------
7     Sample Hold      680.18
7     Sample Executing 680.18
7     Sample Executing 680.18
1     Sample halted    684.18
相关问题