如何用Powershell每15分钟重启batch文件,或找Windows前台可用的crontab等价方案
方案1:调整Windows任务计划配置直接实现前台运行
任务计划默认后台运行是配置选择导致的,按以下步骤调整即可直接满足需求,无需额外工具:
- 常规选项卡:安全选项区域选择「只在用户登录时运行」,禁止勾选「不管用户是否登录都要运行」,勾选后者会强制任务在后台会话执行,无法显示前台窗口
- 触发器配置:新建触发器,选择「每日」,在高级设置中勾选「重复任务间隔」,设置为15分钟,持续时间选择「24小时」,确认勾选「已启用」
- 操作配置:操作类型选「启动程序」,程序或脚本输入
powershell.exe,添加参数输入-WindowStyle Normal -Command "C:\你的脚本完整路径\目标脚本.bat",路径含空格时必须用英文双引号包裹
方案2:PowerShell常驻循环脚本(无需配置任务计划)
如果不想配置任务计划,直接写一个PowerShell脚本常驻运行即可,代码示例:
while ($true) { # 前台启动批处理文件,等待批处理执行完成后再计时 Start-Process "C:\你的脚本完整路径\目标脚本.bat" -Wait # 等待15分钟(单位:秒) Start-Sleep -Seconds 900 }
保存为.ps1后缀的文件后直接运行即可,脚本窗口会常驻前台,每次执行批处理时都会正常弹出界面,需要停止定时任务直接关闭该PowerShell窗口即可。
方案3:命令行类crontab工具(Windows原生自带)
Windows原生自带的schtasks命令行工具功能完全等价于Linux的crontab,支持直接用命令创建定时任务,执行以下命令即可一键创建符合要求的前台定时任务:
schtasks /create /tn "15分钟定时执行批处理" /tr "powershell.exe -WindowStyle Normal \"C:\你的脚本完整路径\目标脚本.bat\"" /sc minute /mo 15 /ru %username% /it
关键参数说明:
/sc minute /mo 15:指定执行周期为每15分钟一次/ru %username% /it:指定任务以当前用户身份交互式运行,保证任务执行时弹出前台窗口
内容的提问来源于stack exchange,提问作者dawnslayer
相关产品推荐
相关产品推荐

