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

如何通过Windows Task Scheduler每2分钟运行PowerShell脚本,支持手动或绑定应用启停

方案1:修复Windows任务计划程序配置

1.1 实现每2分钟重复执行

界面下拉选项最低仅显示5分钟属于常规视觉误导,重复间隔的输入框支持手动编辑值,直接输入2后单位选择分钟即可生效,无需局限于下拉给出的可选值。

1.2 解决到点不执行问题

按以下顺序排查配置项即可修复:

  • 触发器配置:选择「每天」作为基础触发类型,开始时间设置为早于当前时间1分钟,高级设置中勾选「重复任务间隔」,持续时间选择「无限期」,同时勾选「如果任务错过计划开始时间,立即启动任务」
  • 任务全局配置:进入「设置」标签页,勾选「不管用户是否登录都要运行」(无GUI交互的脚本建议开启),取消勾选「任务运行时间超过以下时间就停止」,勾选「如果请求后任务还在运行,不要启动新实例」避免重复进程冲突

1.3 实现两种触发方式

  • 手动控制启停:任务计划程序原生支持右键任务点「运行」启动周期、点「结束」停止任务及后续触发。如果需要快捷操作,可以创建两个桌面快捷方式,启动命令为schtasks /run /tn "你的任务名称",停止命令为schtasks /end /tn "你的任务名称",双击即可完成控制
  • 绑定应用同步启停:新建两个事件触发器,第一个匹配目标应用启动时的系统日志事件ID,触发时启动你的定时任务;第二个匹配目标应用退出的系统日志事件ID,触发时执行停止任务的命令。如果不想找事件ID,也可以额外写一个进程检测脚本,循环判断目标应用是否在运行,同步控制定时任务的启停即可
方案2:轻量替代方案

如果觉得任务计划程序配置过于繁琐,可以直接用原生PowerShell实现需求,无需额外工具:

# 可修改配置项
$targetApp = "notepad.exe" # 替换为要绑定的应用进程名
$targetScriptPath = "C:\你的脚本路径\test.ps1" # 替换为你要运行的PowerShell脚本路径
$runInterval = 120 # 运行间隔,单位为秒,120即2分钟
$runMode = "manual" # 可选值:manual 手动模式、app 绑定应用模式

# 主运行逻辑
while($true){
    $allowRun = $false
    if($runMode -eq "manual"){
        $allowRun = $true # 手动模式下持续运行,关闭当前PowerShell窗口即可停止
    }else{
        $appProcess = Get-Process $targetApp -ErrorAction SilentlyContinue
        if($appProcess){$allowRun = $true}
    }
    if($allowRun){
        & $targetScriptPath
    }
    Start-Sleep $runInterval
}

将上述代码保存为wrapper.ps1直接运行即可,切换运行模式只需修改$runMode的值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 08:48:03