You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell脚本开发:如何获取进程PID与启动时间并格式化输出

PowerShell脚本修正:显示进程PID与启动时间

原脚本问题分析

你之前的脚本里使用了Format-Table,这个命令的作用是生成格式化的输出内容,它返回的是格式化指令对象而非实际的时间值,所以变量$time才会存储一堆Microsoft.PowerShell.Commands.Internal.Format.*类型的数据,无法直接提取时间字符串。

修正后的脚本

$procName = $args[0]

# 获取指定名称的所有进程实例,静默忽略不存在的情况
$processes = Get-Process -Name $procName -ErrorAction SilentlyContinue

if ($processes) {
    # 遍历每个进程对象
    foreach ($proc in $processes) {
        # 提取PID,将StartTime格式化为指定字符串
        $id = $proc.Id
        $startTime = $proc.StartTime.ToString("yyyy-MM-dd h:mm:ss tt")
        # 按要求格式输出
        Write-Host "$id $procName Started $startTime"
    }
}
else {
    Write-Host "进程不存在"
}

关键说明

  • 直接从Get-Process返回的进程对象中提取Id(PID)和StartTime属性,无需额外的格式化命令转换。
  • StartTime是DateTime类型,用ToString("yyyy-MM-dd h:mm:ss tt")可以直接生成你需要的时间字符串格式。
  • 用foreach遍历所有进程实例,自然支持多进程应用(如Chrome)的批量输出。
  • 先将进程对象存入$processes变量,避免重复调用Get-Process,提升脚本效率。

内容的提问来源于stack exchange,提问作者Franco Reyes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 03:54:28