使用Windows任务计划程序每隔x分钟运行一个任务

360

我正在尝试让Windows任务计划程序每隔10分钟运行一个特定的.exe文件,但选项只允许每天执行一次。

有没有办法让它每隔10或20分钟运行一次.exe文件?


8
在Windows Server 2008中,虽然不太直观,但您可以在“编辑触发器”对话框的“重复任务间隔”下拉框中键入数字。我在MorningZ的条目下也留了一个链接。 - David Yates
4
谷歌提供了几个答案,包括微软的这个 - Phrogz
1
作为评论或答案的链接的问题在于... 这些链接现在都失效了。我猜又是时候用万维网时间机器了。 - Tim Lovell-Smith
8个回答

475

该任务必须分两步配置。

首先,您需要创建一个简单的任务,在每天的0:00开始。然后,进入 高级...(或类似于您所使用操作系统的选项),并选择在24小时内每隔 X 分钟重复一次。

关键在于找到高级属性。如果您使用 XP 向导,则只有在创建任务后才会提供启动高级对话框的选项。

在较新版本的 Windows 中(我认为是7+):

  1. 双击任务,将显示属性窗口。
  2. 单击 触发器 选项卡。
  3. 双击触发器详细信息,将显示 “编辑触发器” 窗口。
  4. 高级设置 面板下,勾选 每隔 xxx 分钟重复任务 ,如果需要,请设置为 无限期
  5. 最后,单击确认。

58
这个方案的问题在于,如果你在0:05重启计算机,那么这个任务将要过23小时55分钟才会再次重复执行! - JoshuaDavid
9
一种稍微不同的方法是设置24个任务,每个任务重复进行1小时。这样你就永远不会失去超过一小时的覆盖时间。 - Yablargo
130
如果你将任务设置为在计划的启动时间错过后立即运行,那么就不会出现这种情况。在“任务”>“属性”>“设置”中勾选“计划启动时间错过后立即尝试运行任务”。 - Urda
7
如果您将任务设置为从0:00开始,每小时重复一次。如果您在06:00开启计算机,并且选项“尽快运行任务”被打开,那么它会运行一次还是六次命令? - Andreas Rejbrand
9
如果勾选了这个设置,任务计划程序服务将在任务应定时运行但由于某些原因(例如计算机被关闭或任务计划程序服务繁忙)未激活任务时启动该任务。任务错过后,任务计划程序服务不会立即启动任务,而是默认等待十分钟后再开始错过的任务。因此,它应该只启动一个任务实例,而不是整个积压队列。 - Urda
显示剩余6条评论

64
在选择最小重复选项(5分钟或10分钟)后,您可以突出显示数字并写下任何您想要的数字。

这是在Server 2012上有效的,因为没有“高级”选项。在这些平台上的关键是要意识到您可以在框中指定任何您喜欢的内容。 - decates
18
微软的UI设计发现性评分为0分,太差了!“far out...” - Damien Sawyer
很好知道,非常好知道 :) 但是没有更进一步的可能性来降到秒级,对吗?1分钟是最少的?我想要降到30或者10秒... - BAERUS
1
这是一条注释,而不是答案。 - Léo Natan
7
@LeoNatan 实际上,这正是我进入此帖子时正在寻找的确切答案。 - Jony Adamit
你是怎么发现这个“技巧”的,我不知道,但它确实有效!谢谢! - user10709390

53
如果您需要在调用之间有更精细的粒度,您还可以创建如下批处理文件:
:loop
call YourScript.Exe
timeout /t timeToWaitBetweenCallsInSeconds /nobreak
goto :loop

3
对我来说,这是最优雅的解决方案,因为相关任务已经从一批文件开始。所以只需要添加几行代码就可以了。谢谢! - marlar
3
我喜欢这个解决方案。但是你如何确保这个批处理文件一直在运行(并且只有一个实例)? - Olivier 'Ölbaum' Scherler
1
这是一种方法,但任务计划程序才是正确的方式。只需使用“启动后”选项而不是特定日期,就可以完成任务。 - Jakob Sternberg
我在配置每小时运行任务时遇到了各种问题。因此,我喜欢这个解决方案,可以循环执行并让其休眠1小时,然后再次循环执行该作业。只需要弄清楚每日作业的时间安排以及每小时任务是否会在24小时内引起问题即可。 - Sun
@Olivier'Ölbaum'Scherler,你找到检查批处理文件是否一直在运行的解决方案了吗? - Mahadev Mandale

52

每小时任务示例

在使用schtasks上述建议时,您可以在UI中看到执行每小时任务所必须做的事情。当您编辑触发器并按计划开始任务时,请选择“一次性”(这是关键)。然后,您可以选择“重复任务时间:”1小时或您希望的任何时间间隔。请参见截图:


3
使用 SCHTASKS /Create 命令? - Kiquenet
不仅菜单本身不友好,而且德语翻译也非常误导。德语中显示的是“立即”一词,而不是“无限期”,这在该上下文中根本没有意义。 - tollube
重启时不是一个好时间,我建议您每天执行,并持续1天。 - Jordan Casey

29
在“每隔任务:”中,只需键入2分钟,而不是从下拉列表中选择。

23

在Windows XP上,我点击了“计划任务”选项卡上的“高级”按钮。有一个名为“重复任务”的复选框,默认设置为每10分钟一次。

此外,您还可以通过命令行创建定时任务。虽然我没有亲自尝试过,但看起来您需要使用类似以下代码(未经测试):

schtasks /create /tn "Some task name" /tr "app.exe" /sc HOURLY 

我对“until”选项感到困惑。比如说,我将其设置为每5分钟重复一次,然后我被迫在下面选择一个单选按钮……如果我想让它每天每5分钟运行一次而不停止,我应该输入什么? - kacalapy
好的,你说得对。那确实有点混淆。显然你可以通过命令行创建一个。也许值得一试。我已经更新了帖子,并附上了我找到的链接。 - Courtney Christensen

9

要自动安排更新,您应该:

  • 转到控制面板 » 管理工具 » 计划任务
  • 创建(基本)任务
  • 进入计划 »高级选项
  • 勾选“重复任务”框,并设置每10分钟执行一次,持续时间为24小时或无限期
  • 保留结束日期未勾选

如果找不到计划设置,请查看:属性、编辑、触发器。


3
一些提供的链接仅适用于Windows 2003版本的“计划任务”。
在Windows Server 2008中,“任务”设置仅具有一个框,其中包含“5分钟、10分钟、15分钟、30分钟和1小时”的选项(屏幕截图:http://i46.tinypic.com/2gwx7r8.jpg),而Window 2003则是一个“输入任何数字”的文本框。
我认为可以通过“导出”并编辑XML来将任务重复每2分钟,例如从PT30M到PT2M,然后将其作为新任务导入,但它不喜欢那样做。
我的解决方法是在Windows 2008中让任务每2分钟运行一次,需要设置30个不同的“触发器”,每小时重复一次,但从:00、:02、:04、:06等开始,这花费了我8-10分钟来设置,但只需要做一次。

18
虽然不太直观,但你实际上可以在Windows Server 2008的下拉菜单中键入数字:http://social.technet.microsoft.com/Forums/en-US/winserverManagement/thread/74a10148-36c9-432b-be1c-9833d4cbfd86 - David Yates
1
哦,哇@DavidYates你是对的!即使在Windows Server 2016中,这仍然是一个问题。你不会想到你可以只需在下拉菜单中输入数字和粒度,但事实证明你可以这样做。 - Marl Xtian Monzon Marcera

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接