无忧启动论坛

标题: 求助 请高手帮忙优化这个批处理 [已解决] [打印本页]

作者: 七仙花    时间: 2009-6-9 19:47
标题: 求助 请高手帮忙优化这个批处理 [已解决]
@echo off
rd /s /q "C:\WINDOWS\vod_cache_data\"
rd /s /q "C:\Documents and Settings\All Users\Application Data\vod_cache_data\"
rd /s /q "C:\Program Files\vod_cache_data\"
rd /s /q "C:\WINDOWS\gvod_cache_data\"
rd /s /q "C:\Documents and Settings\All Users\Application Data\gvod_cache_data\"
rd /s /q "C:\Program Files\gvod_cache_data\"
rd /s /q "C:\WINDOWS\thunder_vod_cache\"
rd /s /q "C:\Documents and Settings\All Users\Application Data\thunder_vod_cache\"
rd /s /q "C:\Program Files\thunder_vod_cache\"
for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do (rd /s /q %%a:\vod_cache_data\)
for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do (rd /s /q %%a:\gvod_cache_data\)
for %%a in (c d e f g h i j k l m n o p q r s t u v w x y z) do (rd /s /q %%a:\thunder_vod_cache\)
echo.
echo 清理系统垃圾完成!
echo. & pause

这是迅雷看看留下的文件夹,每次看完后都留下一大堆垃圾文件。
我的目的很简单,就是用批处理搜索硬盘所有目录中包含   vod_cache  字符的目录名,然后强制删除
因为迅雷看看每安装一次,那个目录名都不同,但都包含   vod_cache  字符,所以能不能使用通配符来搜索目录?

有劳各位朋友帮忙写一个批处理

[ 本帖最后由 七仙花 于 2009-6-10 13:07 编辑 ]
作者: haiou327    时间: 2009-6-9 21:29
  1. @echo off
  2. del c:\list.txt
  3. set drv=c d e f g h i j k l m n o p q r s t u v w x y z
  4.   for %%a in (%drv%) do (
  5.       for /f "delims=*" %%i in ('dir/ad/b/s %%a:\*od_cache_data*') do echo %%i>>c:\list.txt
  6.             )>nul 2>nul
  7. explorer c:\list.txt
  8. pause
复制代码

先试试看list出来的目录能否符合要求,如果符合要求再把echo 替换成RD /s/q

  1. @echo off
  2. set drv=c d e f g h i j k l m n o p q r s t u v w x y z
  3. for %%a in (%drv%) do (
  4.      for /f "delims=*" %%i in ('dir/ad/b/s %%a:\*od_cache_data*') do rd /s/q %%i
  5.               )>nul 2>nul
  6. pause
复制代码


[ 本帖最后由 haiou327 于 2009-6-9 21:59 编辑 ]
作者: 七仙花    时间: 2009-6-10 13:04
谢谢超版,已测试过了,不过有一句得修改一下

for /f "delims=*" %%i in ('dir/ad/b/s %%a:\*od_cache_data*') do rd /s/q %%i

就是蓝色部分,那个目录名改成 *vod_cache*  这样就能搜索到所要求的目录,

rd /s/q %%i  这句要改成 rd /s/q %%i”    加上一个双引号,就能把下面这些带空格的路径名下的目录删除了。

c:\Documents and Settings\Administrator\Application Data\gvod_cache_data
c:\Documents and Settings\Administrator\Application Data\thunder_vod_cache
c:\Documents and Settings\Administrator\Application Data\vod_cache_data
c:\Documents and Settings\All Users\Application Data\gvod_cache_data
c:\Documents and Settings\All Users\Application Data\thunder_vod_cache
c:\Documents and Settings\All Users\Application Data\vod_cache_data
c:\Program Files\gvod_cache_data
c:\Program Files\thunder_vod_cache
c:\Program Files\vod_cache_data


修改后的批处理如下:

@echo off
set drv=c d e f g h i j k l m n o p q r s t u v w x y z
for %%a in (%drv%) do (
     for /f "delims=*" %%i in ('dir/ad/b/s %%a:\*vod_cache*') do rd /s/q "%%i"
              )>nul 2>nul
pause


作者: 13545240    时间: 2009-6-10 15:59
提示: 作者被禁止或删除 内容自动屏蔽
作者: 七仙花    时间: 2009-6-10 17:07
如果这样做,要占用很大一部分内存,速度肯定会慢




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3