【问题标题】:Create a task which will expire/disable after sixmonth from its start date创建一个从开始日期起六个月后过期/禁用的任务
【发布时间】:2018-04-22 14:51:44
【问题描述】:

我想创建一个 Windows 任务,该任务将在任务创建之日起的六个月内每天上午 12 点运行一个批处理文件。我正在使用以下命令来创建任务。我不确定如何设置到期日期,以便任务在六个月后停止执行。

我的命令是: schtasks /create /sc Daily /mo 10 /tn run /tr "C:\Users\Rashmi\test.bat" /st 00.00

感谢任何帮助。

【问题讨论】:

    标签: cmd taskscheduler


    【解决方案1】:

    借助 Powershell 轻松计算结束日期(纯批处理通常可以,但这是一场噩梦):

    for /f "delims=" %%a in ('powershell "(get-date).AddMonths(+6).ToString('MM/dd/yyyy')"') do set "enddate=%%a"
    schtasks /create /sc Daily /mo 10 /tn run /tr "C:\Users\Rashmi\test.bat" /st 00.00 /ED %enddate%
    

    请参阅here 了解纯批处理解决方案和使用 VBS 而非 Powershell 的解决方案(但需要临时文件)。

    【讨论】:

    • 我运行了上述命令,但我得到的日期格式应该是 MM/DD/YYYY 格式错误。我将双引号中的格式更改为 MM.DD.YYYYY 而不是 'dd.MM.yyyy 但没有帮助。我是 powershell 脚本的新手。您对如何修复它有任何建议
    • 错误:结束日期无效(日期应采用“mm/dd/yyyy”格式)。 22/10/2018
    • 那么它是'MM/dd/yyyy'(编辑了我的答案)。抱歉,我的(德语)schtasks /? 向我显示了德语日期格式。 (注意:不要使用mm,因为 Powershell 会将其解释为“分钟”)
    • 是的,我尝试按照您在回复中建议的方式更改日期格式,但它给了我同样的错误:
    • 嗨,斯蒂芬...谢谢您的回复。我认为日期格式没有问题。由于某种原因,结束日期不接受 mm/dd/yyyy 格式。
    【解决方案2】:

    您需要一个 /ed 参数并使用 %date% 值动态建立值

    https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/schtasks#BKMK_create

    【讨论】:

    • 感谢您的回复并发布了一个非常有用的链接。
    • 我正在努力计算 /ed 参数。
    • 假设您的语言环境需要前一天(该文章说明需要哪种格式),然后使用以下内容:%date:~0,2%/%date:~3,2% /%date:~6,4%
    • 如果您的语言环境需要第 1 个月,则交换第 1 和第 2 个值
    • @BlythMeister 见Answering:provide context for links rash 如果您采纳答案,您应该check 和/或投票。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多