首页 > 解决方案 > 如何以分钟为单位获取进程的开始时间?

问题描述

我需要以分钟为单位(仅几分钟)获取进程的开始时间。

我已经有代码来获取目录的修改日期时间:

[int]([datetime]::Now - (gci 'C:\Folder' -Force).LastWriteTime).TotalMinutes

我怎样才能为只占用几分钟的进程创建类似的东西?

标签: powershellbatch-filecmd

解决方案


并非所有进程都设置了属性 StartTime,因此:

Get-Process | ForEach-Object {
    if($_.StartTime){
        [PSCustomObject]@{
            Process = $_.Name
            RunsMinutes=[int]([datetime]::Now - $_.StartTime).TotalMinutes
        }
    }
}

会产生这样的东西:

Process                RunsMinutes
-------                -----------
avgnt                          631
Avira.Systray                  631
ClassicStartMenu               632
cmd                            246
conhost                        561
conhost                        246
conhost                        459
ctfmon                         632
dllhost                        632
explorer                       632
fdm                            631
firefox                        594
firefox                        631
...

推荐阅读