【问题标题】:Onidle task starting after specific dateOnidle 任务在特定日期之后开始
【发布时间】:2018-12-07 15:14:10
【问题描述】:

我正在尝试创建一个批处理文件,该文件将(除其他外)为 Windows 任务计划程序创建任务,该任务应在每次计算机空闲一段时间时执行,但应仅在特定日期之后开始执行该任务。 当我试图这样写时

schtasks /create /TN "Connection Configuration" /SC onidle /i 5 /sd 12/13/2018 /tr "C:\Program Files\OpenVPN\config\client.bat"

我收到错误消息,告知 /SD 参数不能与 onidle 一起使用。 在 Windows 10 Pro 上还有其他方法可以做到这一点吗?

【问题讨论】:

    标签: windows batch-file cmd windows-task-scheduler


    【解决方案1】:

    您缺少/create 参数。

    这对我有用:

    schtasks /create /tn test123 /sc onidle /i 1 /sd 09/12/2018 /tr "cmd /c mkdir test123"
    

    /sd 可以使用,但/st 不能。

    如果这还不够,请将任务导出为 XML,修改它,然后使用导入

    schtasks /create /xml c:\path\to\file.xml /tn INSERT_TASKNAME_HERE
    

    【讨论】:

    • 我没有忘记 /create 我的完整代码看起来像 schtasks /create /TN "Connection Configuration" /SC onidle /i 5 /sd 12/13/2018 /tr "C:\Program Files\OpenVPN\config\client.bat" 并且我收到关于 /SD 的错误消息目前我认为最好的解决方法是创建任务肯定会创建另一个将在空闲时执行的任务,但我仍然愿意征求意见。我无法复制错误消息,因为我使用的是非英语 Windows 10 Pro。通常它只是说 /RI /DU /ST /SD /ET /ED /K 不能与 onstart、onlogon、onidle 和 onevent 一起使用。
    • 你为什么要发布不同的命令行呢?请编辑您的问题以包含此命令行和您的操作系统版本。您的命令适用于我的测试系统,但我目前没有方便测试的 windows-10。请尝试我关于将任务导出/导入为 XML 的建议。一个创建另一个任务的任务实际上也可以工作。尝试创建一个包含 echo PASSWORD | schtasks /create............ 之类的批处理文件,然后安排该文件在特定日期运行。不过,这会以明文形式公开密码 - 因此可能不利于安全。
    • 我发布了给出确切错误消息的最短字符串。编辑了主帖。您使用哪个版本的 Windows 运行该代码?