如何用PowerShell 7.3.1创建按X分钟/小时执行的计划任务
在PowerShell 7中创建重复执行的计划任务
一、使用PowerShell原生命令实现
PowerShell 7中虽无Register-ScheduledJob,但可通过ScheduledTasks模块的命令创建重复触发的计划任务,核心是结合-Once触发器类型,搭配重复间隔与持续时间参数:
- 创建重复触发器:
# 每5分钟重复一次,无限持续 $trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) ` -RepetitionInterval (New-TimeSpan -Minutes 5) ` -RepetitionDuration ([TimeSpan]::MaxValue)
-Once指定触发类型为单次启动-At (Get-Date)设置从当前时间开始执行-RepetitionInterval定义重复间隔(替换为New-TimeSpan -Hours X可实现每X小时重复)-RepetitionDuration ([TimeSpan]::MaxValue)设置无限重复,若需指定持续时长,可替换为New-TimeSpan -Hours 8这类具体时长
- 创建任务执行动作(示例为运行PowerShell脚本):
$action = New-ScheduledTaskAction -Execute "pwsh.exe" ` -Argument "-File C:\Scripts\YourScript.ps1"
- 注册计划任务:
Register-ScheduledTask -TaskName "MyRepeatingTask" ` -Trigger $trigger ` -Action $action ` -Description "每5分钟执行一次的任务"
二、使用schtasks.exe修改现有任务
如果需要调整已创建的任务(比如初始为启动触发的任务),可直接用schtasks.exe修改触发规则:
1. 修改为每X分钟重复:
schtasks /change /tn "你的任务名称" /sc minute /mo X
/sc minute指定触发类型为按分钟重复/mo X替换为实际间隔分钟数(比如5即每5分钟)
2. 修改为每X小时重复:
schtasks /change /tn "你的任务名称" /sc hourly /mo X
/sc hourly指定触发类型为按小时重复/mo X替换为实际间隔小时数(比如2即每2小时)
3. 若需从当前时间开始无限重复,可搭配起始时间参数:
schtasks /change /tn "你的任务名称" /sc minute /mo 5 /st (Get-Date).ToString("HH:mm")
内容的提问来源于stack exchange,提问作者user20682592
相关产品推荐
相关产品推荐

