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

如何通过PowerShell配置每月按当前日期时间运行的计划任务?

如何让计划任务每月按当前日期运行(基于PowerShell和XML配置)

要实现每月按当前日期运行计划任务(比如今天是15号,就每月15号执行),你只需要调整XML触发器里的固定日期配置,再配合PowerShell动态注入当前日期即可,具体操作如下:

1. 核心XML配置调整

你原来的XML触发器里,<Day>1</Day>是固定指定每月1号运行,只需要把这个固定值替换为当前日期的数字(比如15、20等)即可。调整后的触发器片段大致如下:

<Triggers>
  <CalendarTrigger>
    <StartBoundary>2024-05-15T11:00:00</StartBoundary> <!-- 这里的日期可以设为当前日期的目标时间 -->
    <Enabled>true</Enabled>
    <ScheduleByMonth>
      <DaysOfMonth>
        <Day>15</Day> <!-- 替换为你创建任务当天的日期 -->
      </DaysOfMonth>
      <Months>
        <January/>
        <February/>
        <March/>
        <April/>
        <May/>
        <June/>
        <July/>
        <August/>
        <September/>
        <October/>
        <November/>
        <December/>
      </Months>
    </ScheduleByMonth>
  </CalendarTrigger>
</Triggers>

注意:如果当前日期是31号,Windows计划任务会自动在没有31号的月份(如4、6、9、11月)的最后一天(30号)运行,2月则会适配为28/29号,无需额外配置。

2. 用PowerShell动态修改XML(推荐)

手动修改XML文件不够灵活,你可以用PowerShell自动获取当前日期,动态修改XML内容后再注册任务,避免手动操作:

方式一:用正则替换快速修改

# 获取当前日期的日部分
$currentDay = (Get-Date).Day
# 读取XML模板文件
$xmlContent = Get-Content -Path "PathtoXml.xml" -Raw
# 替换固定的<Day>1</Day>为当前日期
$xmlContent = $xmlContent -replace "<Day>1</Day>", "<Day>$currentDay</Day>"
# 可选:更新StartBoundary为当前日期的目标时间(比如11点)
$startBoundary = (Get-Date -Hour 11 -Minute 0 -Second 0).ToString("yyyy-MM-ddTHH:mm:ss")
$xmlContent = $xmlContent -replace "<StartBoundary>.*?</StartBoundary>", "<StartBoundary>$startBoundary</StartBoundary>"
# 注册计划任务(-Force参数会覆盖同名任务)
Register-ScheduledTask -Xml $xmlContent -TaskName "YourTaskName" -Force

方式二:用XML对象操作(更严谨)

如果担心正则替换出错,可以直接用PowerShell的XML对象来修改节点:

# 加载XML模板文件
$xml = [xml](Get-Content -Path "PathtoXml.xml")
# 修改触发器的日期为当前日
$xml.Task.Triggers.CalendarTrigger.ScheduleByMonth.DaysOfMonth.Day = (Get-Date).Day
# 可选:更新StartBoundary为当前日期的目标时间
$startBoundary = (Get-Date -Hour 11 -Minute 0 -Second 0).ToString("yyyy-MM-ddTHH:mm:ss")
$xml.Task.Triggers.CalendarTrigger.StartBoundary = $startBoundary
# 转换XML对象为字符串
$xmlString = $xml.OuterXml
# 注册计划任务
Register-ScheduledTask -Xml $xmlString -TaskName "YourTaskName" -Force

这样配置后,你的计划任务就会每月在创建时的当前日期运行啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:16:34