代码之家  ›  专栏  ›  技术社区  ›  Damien

Windows 10 Schtasks.exe最终运行后删除错误

  •  1
  • Damien  · 技术社区  · 7 年前

    我正在尝试使用 schtasks 运行一个只执行一个程序的一次性任务。下面是它的样子:

    schtasks /Create /SC ONCE /TN "OpenCalc" /TR "C:\Windows\System32\calc.exe" /ST "11:59" /SD "09/12/2018"
    

    我希望此任务在执行一次后删除自身,因此添加以下内容:

    /Z
    
    A value that marks the task to be deleted after its final 
    

    现在我的命令是:

    schtasks /Create /SC ONCE /TN "OpenCalc" /TR "C:\Windows\System32\calc.exe" /ST "11:59" /SD "09/12/2018" /Z
    

    ERROR: The task XML is missing a required element or attribute.
    (40,4):EndBoundary:
    

    这个 documentation /Z /XML 参数,但可能不是这样。我是不是漏了什么?

    1 回复  |  直到 7 年前
        1
  •  2
  •   some guy    6 年前

    选择 /z 不适用于starttype once ,请参见 this 回答。带选项 /v1 任务已成功创建,但运行后未删除。

    你可以删除任务“maualy”,例如。

    ... /TR "cmd.exe /c C:\Windows\System32\calc.exe && schtasks /delete /tn OpenCalc /f"
    
        2
  •  1
  •   Damien    7 年前

    发生此问题的原因是Windows Vista中的任务计划程序服务发生了更改。

    ( Source )

    作为解决方法,Microsoft建议:

    要解决此问题,请使用/V1开关。/V1开关创建了一个与WindowsVista之前的平台兼容的任务。

        3
  •  1
  •   LewTwo    7 年前

    它也发生在Windows10(1903更新)中,但是“V1”选项将允许创建任务。它还要求用户输入密码。

    如果您正在为任务使用cmd文件,并且您知道taskname,则此方法不起作用:

    Schtasks.exe /Delete /TN taskname < yes.txt
    

    其中yes.txt是带有单个字符“Y”的文本文件。它模拟对确认提示的响应( 这与我们在MS-DOS3.X时代确认批处理文件中的文件删除或覆盖是一样的 ).

    C:\Users\John Doe> Schtasks.exe /Delete /TN k138A < yes.txt
    WARNING: Are you sure you want to remove the task "k138A" (Y/N)? Y
    SUCCESS: The scheduled task "k138A" was successfully deleted.
    

    鼓励 “要移动PowerShell计划程序cmdlet的用户。

    https://docs.microsoft.com/en-us/powershell/module/scheduledtasks/?view=win10-ps