首页 > 解决方案 > 任务计划程序仅在该月的最后一个完整工作周内运行任务

问题描述

我有多个任务需要在每个月的最后一个完整工作周(周一至周五)安排。这些将从 Windows Server 2016 服务器安排。我无法弄清楚这样做的逻辑。

提供帮助的其他信息:2020 年 7 月是一个完美的月份,可以说是在最后一个星期一/星期二/等运行。不过,大多数月份不会以完整的工作周结束。它可能在星期二结束,整个工作周在此之前的 4 天结束。

我有如何做到这一点的想法,但它们没有完全制定:

  1. 找到该月的最后一个星期五并在此之前的 4 天开始。
  2. 找出最后一个星期一,在之后的一个月中至少还有 4 天。
  3. 如果该月的最后一天是星期日,则在此之前 6 天开始;星期六,提前 5 天开始;等等

在任务计划程序中执行此操作的最干净的方法是什么?(计划的脚本在 PowerShell 中,但我认为这并不重要)。

标签: windowspowershellif-statementscheduled-taskstaskscheduler

解决方案


所以,你的情况是:“我有一个脚本,我有一个复杂的日期计划,我希望我的脚本按照那个计划启动。”,
你的问题是:“如何在 Windows 任务计划程序中执行这个计划?”

我的回答是:
不要那样做,而是编写一个新脚本来验证当前日期,并验证当前日期是否对应于复杂的日期时间表(在这种情况下,启动您的原始脚本),并使用 Windows任务调度程序每天启动这个新脚本。

至于制作那个新脚本,这个 URL解释了如何在 Powershell 中执行日期处理。


推荐阅读