有没有简单的方法可以显示特定 PID 实例活跃了多长时间?
答案1
使用 Powershell Get-Process cmdlet:
获取进程 | 选择对象 ID、开始时间、名称 | 排序对象 ID
答案2
格雷格,
我知道 Process Explorer 将会显示这一点。
在这里获取:http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
如果您运行它,右键单击一个进程并选择Properties
它将显示该进程的启动时间(您可以单击Threads
那里的选项卡查看单个线程的启动时间)。
或者,在 Process Explorer 中,您可以单击View
,Select Columns
选择Process Performance
选项卡,然后选择Start Time
,然后它将在主窗口中显示所有 PID 的该列。
您可能需要对该进程中的各个线程(再次是线程选项卡)和当前日期/时间进行自己的计算,以获得真正的“多长时间”答案。
答案3
在命令您可以使用标准 Windows 管理规范命令行(西米利都) 实用程序来获取进程启动时间:
wmic process where Name="<process name>" get CreationDate
或者
wmic process where ProcessID="<PID>" get CreationDate
您将获得如下日期时间:20201021010512.852810+180
。
格式:YYYYMMDDHHMMSS.ssssss+MMM(UTC offset)
如果您想要更易读的表示,则需要使用脚本进行准备。这里我为此编写了一个小批处理脚本:
@ECHO OFF
SETLOCAL
IF [%1]==[] (
ECHO Prints process creation date in ISO format.
ECHO:
ECHO USAGE: %~n0 ^<PID or Process name^>
EXIT /B 1
)
IF [%~x1]==[.exe] (SET type=Name) ELSE (SET type=ProcessID)
FOR /F "tokens=1,2 delims==" %%a IN ('wmic process where %type%^="%~1" get CreationDate /value') DO (
IF [%%a]==[CreationDate] SET proc_cd=%%b
)
IF DEFINED proc_cd (
ECHO %proc_cd:~0,4%-%proc_cd:~4,2%-%proc_cd:~6,2%T%proc_cd:~8,2%:%proc_cd:~10,2%:%proc_cd:~12,2%
)
输入一个 PID 或以 .exe 结尾的进程名,它将输出该进程的启动时间。警告:如果有许多同名的进程,它将仅输出最后启动的进程的时间。