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

如何在PowerShell中计算工单Referred Date与Resolved Date的时间差并输出

计算工单Referred Date与Resolved Date的时间差并添加输出列

嗨,我看了你的现有脚本,要实现这个时间差计算并单独列显示,其实用PowerShell的计算属性就能轻松搞定,不用额外折腾自定义函数。直接在Select-Object里加个自定义列就行,修改后的完整脚本如下:

$users = Get-Content -Path C:\Temp\users.txt
foreach ($user in $users) {
    $filterDate = [DateTime]::Today.AddDays(-1)
    Get-CdPacPro -ResolvedByGroup MyGroup -ResolvedByELID $user | 
        Where-Object {$_.ResolvedDate.Date -ge $filterDate} | 
        Select-Object ProblemID,ClosedByELID,ClosedByGroup,ResolvedDate,ReferredDate,
            @{
                # 定义输出列的名称,可按需修改
                Name = "ResolutionTimeSpan"
                # 核心计算逻辑:直接用两个日期相减得到时间差
                Expression = { $_.ResolvedDate - $_.ReferredDate }
            }
}

核心逻辑说明:

  • 新增的@{Name=...; Expression=...}就是PowerShell的计算属性:
    • Name:设置输出列的标题,这里我用了ResolutionTimeSpan,你可以改成更贴合业务的名字,比如处理时长。
    • Expression:写时间差的计算逻辑——PowerShell中两个DateTime对象直接相减会返回TimeSpan类型,自动显示为天.时:分:秒或时:分:秒的格式,完全满足时间差的展示需求。

可选优化:自定义时间差显示格式

如果觉得默认的TimeSpan格式不够直观,想改成类似X天Y小时Z分钟的字符串,可以把计算属性改成这样:

@{
    Name = "ResolutionDuration"
    Expression = { 
        $timeDiff = $_.ResolvedDate - $_.ReferredDate
        # 拼接成友好的字符串格式
        "$($timeDiff.Days)天 $($timeDiff.Hours)小时 $($timeDiff.Minutes)分钟"
    }
}

这样输出的ResolutionDuration列就会是更易读的文本格式,方便快速浏览。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:22:20