Board logo

标题: [系统相关] 批处理如何删除包含某些字符的任务计划? [打印本页]

作者: hzusb    时间: 2024-6-25 14:14     标题: 批处理如何删除包含某些字符的任务计划?

已知系统任务计划中有“UpdateTask123456”,其中的123456是随机数字,如何通过批处理删除它。

我用了:schtasks /delete /tn "UpdateTask*" /f  删除不了,请大神们指点。
作者: Batcher    时间: 2024-6-25 16:28

回复 1# hzusb


schtasks /query + schtasks /delete
http://bbs.bathome.net/thread-34301-1-1.html#pid162504
作者: hzusb    时间: 2024-6-25 18:07

回复 2# Batcher


     谢谢回复,研究一下
作者: cast    时间: 2024-7-4 23:03

@echo off
chcp 437>nul
for /f "tokens=1*" %%a in ('schtasks /query /fo list^|findstr /ibrc:"TaskName: *\\jf"') do (
        for /f "tokens=* delims=\" %%c in ("%%b") do (
                schtasks /delete /tn "%%c" /f
        )
)
pause

在win10中,参考贴子中的批处理,测试没运行,不知那里不对,请高手指点一下
比如删下面的,后面的一串xxxxxx是随机的
schtasks /delete /TN "MicrosoftEdgeUpdateTaskMachineCorexxxxxxxxxxxxxxxxxx" /f
作者: cast    时间: 2024-7-4 23:07

回复 3# hzusb


    请问研究出来了没有    我也曾找过这种方法,可惜一直没实现
作者: Batcher    时间: 2024-7-5 11:18

回复 4# cast
  1. schtasks /query /fo list > 1.txt
复制代码
执行这个命令,把生成的1.txt文件上传到网盘,我试试。
作者: cast    时间: 2024-7-5 20:10

回复 6# Batcher
  1. chcp 437>nul
  2. for /f "tokens=1*" %%a in ('schtasks /query /fo list^|findstr /ibrc:"TaskName: *"') do (
  3.         for /f "tokens=* delims=\" %%c in ("%%b") do (
  4.                 @echo "%%c"
  5.         )
  6. )
复制代码

其实就是没有过滤出来的问题,先改成上面这样的,可以完全显示列出所有任务了,但过滤出想要的不会搞了,findstr不知能不能搞出来
作者: Five66    时间: 2024-7-5 20:17

本帖最后由 Five66 于 2024-7-5 20:18 编辑

回复 7# cast

既然是
"MicrosoftEdgeUpdateTaskMachineCorexxxxxxxxxxxxxxxxxx"
那TaskName不应该是类似
*\\MicrosoftEdgeUpdateTaskMachineCore
这样的吗
作者: cast    时间: 2024-7-5 20:30

接着练手,把 /ibrc:    改成   /irc:  应该可以了,  

接着再继续下一步实际应用看看了
作者: cast    时间: 2024-7-5 20:38

回复 8# Five66


    本来是这样觉得也不复杂,但是不管用什么字付都滤不出来,现在改了改可以了
作者: aloha20200628    时间: 2024-7-5 21:01

本帖最后由 aloha20200628 于 2024-7-5 21:36 编辑

回复 10# cast
回复 1# hzusb

以下代码是预览版,确认与所删任务名相同后,抹去代码第2行尾部的 echo, 即可改为实际删除版...
  1. @echo off &for /f "tokens=1* delims=: " %%a in (
  2. ' schtasks /query /fo list^|findstr /irc:".*MicrosoftEdgeUpdateTaskMachineCore.*" ') do (echo,schtasks /delete /tn "%%b" /f)
  3. pause&exit/b
复制代码

同法处理一楼示例的代码如下...
  1. @echo off &for /f "tokens=1* delims=: " %%a in (
  2. ' schtasks /query /fo list^|findstr /irc:".*UpdateTask.*" ') do (echo,schtasks /delete /tn "%%b" /f)
  3. pause&exit/b
复制代码

补充说明》以上代码仅用于目标任务所含关键词唯一的情况...

作者: cast    时间: 2024-7-5 23:27

本帖最后由 cast 于 2024-7-7 11:45 编辑

回复 11# aloha20200628


测试了,可执行,附加提示:就算查看也要管理员模式,不然会被表象疑惑




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2