【问题标题】:How do I delete all tasks whose names begin with "AliUpdater"?如何删除名称以“AliUpdater”开头的所有任务?
【发布时间】:2020-04-07 11:48:01
【问题描述】:
schtasks /delete /tn "AliUpdater" /f

以上只会删除“AliUpdater”。是否可以删除名称以“AliUpdater”开头的所有任务,例如“AliUpdater{123}”、“AliUpdater{456}” ”和“AliUpdater{789}”?不需要的任务“AliUpdater”带有各种编号。无法预测数量。

【问题讨论】:

    标签: windows cmd scheduled-tasks


    【解决方案1】:

    如果您仍想使用 而不是(这超出了您提供的问题标签的范围)

    For /F "Tokens=1*Delims=\" %# In ('SchTasks /Query /FO List^|Find /I "AliUpdater"')Do @SchTasks /Delete /TN "%$" /F
    

    【讨论】:

    • 我运行了你的命令行并收到了这条消息:ERROR: The filename, directory name, or volume label syntax is incorrect.
    • @MatthewWai,很可能你当时没有按照我的帖子显示的那样做。需要明确的是,您如何运行上述内容?你得到了什么,SchTasks /Query /FO List|Find /I "AliUpdater"?你会得到什么,For /F "Delims=" %# In ('SchTasks /Query /FO List^|Find /I "AliUpdater"')Do @Echo "%#"(显然,根据您的标签,都在 cmd 中,而不是在 batch-file 中)。
    • 我右键单击“开始”按钮-->“Windows PowerShell (Admin)”并运行“cmd”。然后我运行 SchTasks /Query /FO List|Find /I "AliUpdater" 并得到 TaskName: \AliUpdater{123}。然后我运行 For /F "Delims=" %# In ('SchTasks /Query /FO List^|Find /I "AliUpdater"')Do @Echo "%#" 并得到 "TaskName: \AliUpdater{123}"。然后我运行 For /F "Delims=" %# In ('SchTasks /Query /FO List^|Find /I "AliUpdater"')Do @SchTasks /Delete /TN "%#" /F 并得到 ERROR: The filename, directory name, or volume label syntax is incorrect.
    • @MatthewWai,我已经编辑了我的答案,以纳入您现在提供的重要信息。
    • 使用“Tokens=1*”,它现在可以工作了。非常感谢!
    【解决方案2】:

    如果可能,我建议使用 PowerShell。 Get-ScheduledTask 将接受通配符作为任务名称:

    让它确认每个任务:

    Get-ScheduledTask "AliUpdater*" | Unregister-ScheduledTask
    

    没有确认:

    Get-ScheduledTask "AliUpdater*" | Unregister-ScheduledTask -Confirm:$false
    

    【讨论】:

    • 谢谢。有用。如果任务名称包含空格,则需要引号:Get-ScheduledTask "Task name*" | Unregister-ScheduledTask -Confirm:$falseonfirm:$false`
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 2016-03-17
    • 2014-03-29
    • 2020-11-14
    • 2014-05-07
    • 1970-01-01
    相关资源
    最近更新 更多