我在powershell中有一个cmdlet的以下输出,我想从输出中提取时间戳,以便我可以选择已经过时间的作业> 24小时
catch
输出
Command : Get-JAMSEntry -Name * -Server xxxxxx -State Executing
感谢帮助。
由于
答案 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