中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]批量删除QQ生成的号码文件夹(实用哦!!!!)
« [1] [2] »
作者:
标题: [原创]批量删除QQ生成的号码文件夹(实用哦!!!!) 上一主题 | 下一主题
lzmuhioin
初级用户





积分 51
发帖 24
注册 2007-9-18
状态 离线
『楼 主』:  [原创]批量删除QQ生成的号码文件夹(实用哦!!!!)

相信大家在家里面使用QQ的时候,有时候在一台电脑上面所使用的号码太多的话,删起来还是比较麻烦的!我就经常遇到,呵呵,为了方便就写了一个批处理代码,实现批量删除QQ目录里面曾经使用过QQ的号码生成的目录,这样既保护了QQ生成文件的私密,又删除了垃圾文件,
    同时还希望版主不吝赐教,好待我日加完善,满足更多的朋友使用
@echo off
setlocal enabledelayedexpansion
for /l %%i in (2,1,9) do (
     dir *%%i*. /b>ReferCacheNametoDelete
     for /f "tokens=* delims=" %%a in (ReferCacheNametoDelete) do (
         rd "%%a" /s /q
     )
)
del ReferCacheNametoDelete /f /q


2008-5-6 13:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
BWSkyer
中级用户

我是DOS学者


积分 367
发帖 180
注册 2006-5-14
来自 重庆
状态 离线
『第 2 楼』:  

至今不知道 setlocal enabledelayedexpansion 有什么用處~~

還有你如何判斷哪些是用過的QQ呢? 看你的循環沒有看明白..



My blog:左铅右椠 上善若水
My team: 519创意团队
2008-5-6 13:35
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (309843581)  编辑帖子  回复  引用回复
itrui
初级用户





积分 20
发帖 6
注册 2007-9-22
状态 离线
『第 3 楼』:  

1.变量延迟也没用上啊

2.何必生成临时文件呢, in (set) 不是更简洁

3."tokens=* delims=" 都实现一样的功能,用一个就好了吧

4.另外还有很多其他包含数字的文件,你这样肯定会误删。

2008-5-6 14:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lzmuhioin
初级用户





积分 51
发帖 24
注册 2007-9-18
状态 离线
『第 4 楼』:  

这是个人使用上的一种习惯了。。。至于如何判断的
我也不知道使用dir *1*. /b就不能显示出所有带1文件夹,所以就在2到9之间开始循环*%%i*当然是为了取完2至9中间的所有数字,那么至于 dir *%%i*. 那就是显示所以中间部位是数字的文件夹.
那么rd %%a /s /q  就是第从dir中获得名单从而删其及其子文件夹

2008-5-6 14:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
itrui
初级用户





积分 20
发帖 6
注册 2007-9-22
状态 离线
『第 5 楼』:  

dir *%%i*. 那就是显示所以中间部位是数字的文件夹

这句话你再好好研究研究吧

2008-5-6 14:19
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lzmuhioin
初级用户





积分 51
发帖 24
注册 2007-9-18
状态 离线
『第 6 楼』:  

谢谢itrui的建议
我查看的QQ的目录其中还有3DShow 和flashshow2这两个目录,那个加两个判断就成了
@echo off
setlocal enabledelayedexpansion
for /l %%i in (2,1,9) do (
     dir *%%i*. /b
     dir *%%i*. /b>CacheName
     for /f "tokens=* delims=" %%a in (CacheName) do (
         if /i not "%%a" == "3DShow" (
             if /i not "%%a" == "flashshow2" (
                       rd "%%a" /s /q
             )
         )
     )
)
del CacheName /f /q


2008-5-6 14:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lzmuhioin
初级用户





积分 51
发帖 24
注册 2007-9-18
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by itrui at 2008-5-6 02:19 PM:
dir *%%i*. 那就是显示所以中间部位是数字的文件夹

这句话你再好好研究研究吧

看来是我解释有误,意思为只要其文件名中只要含有数字就有算是条件合格这样,就会把3DShow和flashshow2排除掉就行了

2008-5-6 14:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
itrui
初级用户





积分 20
发帖 6
注册 2007-9-22
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by lzmuhioin at 2008-5-6 02:24 PM:
谢谢itrui的建议
我查看的QQ的目录其中还有3DShow 和flashshow2这两个目录,那个加两个判断就成了

@echo off
setlocal enabledelayedexpansion
for /l %%i in (2,1 ...

在我电脑里带数字的可不只这两个文件夹,你看这样写会不会更简单点。
@echo off
for /f "delims=" %%a in ('dir /ad /b^|findstr "^[0-9]*$"') do (echo %%a)
pause


   此帖被 +8 点积分        点击查看详情   
评分人:【 moniuming 分数: +8  时间:2008-9-15 15:43


2008-5-6 14:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 9 楼』:  

"^[0-9]*"
上面这个会列出所有文件夹的
"^[0-9][0-9]*"

2008-5-6 14:38
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
itrui
初级用户





积分 20
发帖 6
注册 2007-9-22
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by huahua0919 at 2008-5-6 02:38 PM:
"^[0-9]*"
上面这个会列出所有文件夹的
"^[0-9][0-9]*"

呵呵,你冤枉我啊,我是那么写的吗?

2008-5-6 14:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 11 楼』:  

按照你那写法,所有显示的只是单个数字的文件夹

2008-5-6 14:52
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
joyn
中级用户

丶杏灬丶


积分 280
发帖 105
注册 2008-5-6
来自 广西
状态 离线
『第 12 楼』:  

好多符号我不明白用法

2008-5-6 14:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
huahua0919
银牌会员




积分 1608
发帖 780
注册 2007-10-7
状态 离线
『第 13 楼』:  

其实这样就行了
findstr "[0-9]"  or findstr "[0123456789]"
就会显示所有有数字命名的文件夹

[ Last edited by huahua0919 on 2008-5-6 at 03:01 PM ]

2008-5-6 15:00
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
itrui
初级用户





积分 20
发帖 6
注册 2007-9-22
状态 离线
『第 14 楼』:  



  Quote:
Originally posted by huahua0919 at 2008-5-6 02:52 PM:
按照你那写法,所有显示的只是单个数字的文件夹

你搞错了吧,我这么写是显示纯数字组合的文件夹,并非单个数字。

findstr "[0-9]"  or findstr "[0123456789]",你这种写法,如果包括数字字母混合也会列出来。

[ Last edited by itrui on 2008-5-6 at 03:14 PM ]

2008-5-6 15:07
查看资料  发短消息 网志   编辑帖子  回复  引用回复
clian76
中级用户





积分 363
发帖 162
注册 2007-4-22
状态 离线
『第 15 楼』:  

我是一句都没看懂,太菜了

2008-9-14 15:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: