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

如何用Python获取Windows任务计划程序中任务的上次运行时间

获取Windows任务计划任务的上次运行时间(DateTime/Unix时间戳)

我之前也踩过schtasks命令输出格式不统一的坑,给你几个更可靠的解决方案:

最优解:用PowerShell直接获取DateTime对象

PowerShell的任务计划模块能直接返回强类型的DateTime值,完全不用纠结字符串格式问题,这是最省心的方式:

# 替换成你的目标任务名称
$targetTask = "TASK_NAME"

# 获取任务的运行详情
$taskInfo = Get-ScheduledTask -TaskName $targetTask | Get-ScheduledTaskInfo

# LastRunTime本身就是DateTime类型,可直接用于日期运算、自定义格式化等操作
$lastRunDateTime = $taskInfo.LastRunTime
Write-Host "上次运行时间(DateTime):$lastRunDateTime"

# 转换为Unix时间戳(秒级)
$unixTimestamp = [Math]::Floor((Get-Date $lastRunDateTime -UFormat %s))
Write-Host "上次运行时间(Unix时间戳):$unixTimestamp"

兼容schtasks命令的处理方案

如果因为环境限制必须依赖schtasks命令的输出,可以用PowerShell帮你解析并自动转换格式——它对Windows常见的日期格式兼容性很强:

$taskName = "TASK_NAME"

# 从schtasks输出中提取上次运行时间字符串
$lastRunStr = (schtasks /QUERY /FO LIST /V /TN $taskName | Select-String "Last Run Time").Line -replace "Last Run Time:\s+", ""

# 直接转换为DateTime类型
$lastRunDateTime = [DateTime]$lastRunStr

# 转Unix时间戳
$unixTimestamp = [Math]::Floor((Get-Date $lastRunDateTime -UFormat %s))

备选:用WMI/CIM查询

也可以通过WMI接口获取任务信息,返回的LastRunTime同样是标准DateTime类型:

$taskName = "TASK_NAME"
$task = Get-CimInstance -ClassName Win32_ScheduledTask | Where-Object {$_.Name -eq $taskName}
$lastRunDateTime = $task.LastRunTime

小提示

如果你的任务在嵌套文件夹里(比如\BackupTasks\DailyBackup),需要把任务名称参数换成完整路径,或者结合-TaskPath指定文件夹路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:48:04