中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-09 17:01
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]批量删除QQ生成的号码文件夹(实用哦!!!!) 查看 2,463 回复 17
楼 主 [原创]批量删除QQ生成的号码文件夹(实用哦!!!!) 发表于 2008-05-06 13:10 ·  中国 四川 德阳 联通
初级用户
积分 51
发帖 24
注册 2007-09-18 17:11
18年会员
UID 97711
性别 男
状态 离线
相信大家在家里面使用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

2 发表于 2008-05-06 13:35 ·  中国 上海 上海电信科技发展有限公司(中山南路111号)
中级用户
★★
我是DOS学者
积分 367
发帖 180
注册 2006-05-14 10:53
20年会员
UID 55507
性别 男
来自 重庆
状态 离线
至今不知道 setlocal enabledelayedexpansion 有什么用處~~

還有你如何判斷哪些是用過的QQ呢? 看你的循環沒有看明白..
3 发表于 2008-05-06 14:01 ·  中国 吉林 延边朝鲜族自治州 电信
初级用户
积分 20
发帖 6
注册 2007-09-22 17:33
18年会员
UID 98063
性别 男
状态 离线
1.变量延迟也没用上啊

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

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

4.另外还有很多其他包含数字的文件,你这样肯定会误删。
4 发表于 2008-05-06 14:13 ·  中国 四川 德阳 联通
初级用户
积分 51
发帖 24
注册 2007-09-18 17:11
18年会员
UID 97711
性别 男
状态 离线
这是个人使用上的一种习惯了。。。至于如何判断的
我也不知道使用dir *1*. /b就不能显示出所有带1文件夹,所以就在2到9之间开始循环*%%i*当然是为了取完2至9中间的所有数字,那么至于 dir *%%i*. 那就是显示所以中间部位是数字的文件夹.
那么rd %%a /s /q 就是第从dir中获得名单从而删其及其子文件夹
5 发表于 2008-05-06 14:19 ·  中国 吉林 延边朝鲜族自治州 电信
初级用户
积分 20
发帖 6
注册 2007-09-22 17:33
18年会员
UID 98063
性别 男
状态 离线
dir *%%i*. 那就是显示所以中间部位是数字的文件夹

这句话你再好好研究研究吧
6 发表于 2008-05-06 14:24 ·  中国 四川 德阳 联通
初级用户
积分 51
发帖 24
注册 2007-09-18 17:11
18年会员
UID 97711
性别 男
状态 离线
谢谢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

7 发表于 2008-05-06 14:28 ·  中国 四川 德阳 联通
初级用户
积分 51
发帖 24
注册 2007-09-18 17:11
18年会员
UID 97711
性别 男
状态 离线
Originally posted by itrui at 2008-5-6 02:19 PM:
dir *%%i*. 那就是显示所以中间部位是数字的文件夹

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


看来是我解释有误,意思为只要其文件名中只要含有数字就有算是条件合格这样,就会把3DShow和flashshow2排除掉就行了
8 发表于 2008-05-06 14:29 ·  中国 吉林 延边朝鲜族自治州 电信
初级用户
积分 20
发帖 6
注册 2007-09-22 17:33
18年会员
UID 98063
性别 男
状态 离线
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 "^*$"') do (echo %%a)
pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
moniuming +8 2008-09-15 15:43
9 发表于 2008-05-06 14:38 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
"^[0-9]*"
上面这个会列出所有文件夹的
"^[0-9][0-9]*"
10 发表于 2008-05-06 14:47 ·  中国 吉林 延边朝鲜族自治州 电信
初级用户
积分 20
发帖 6
注册 2007-09-22 17:33
18年会员
UID 98063
性别 男
状态 离线
Originally posted by huahua0919 at 2008-5-6 02:38 PM:
"^*"
上面这个会列出所有文件夹的
"^*"


呵呵,你冤枉我啊,我是那么写的吗?
11 发表于 2008-05-06 14:52 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
按照你那写法,所有显示的只是单个数字的文件夹
12 发表于 2008-05-06 14:54 ·  中国 广西 南宁 电信
中级用户
★★
丶杏灬丶
积分 280
发帖 105
注册 2008-05-06 03:37
18年会员
UID 117858
性别 男
来自 广西
状态 离线
好多符号我不明白用法
13 发表于 2008-05-06 15:00 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线
其实这样就行了
findstr "" or findstr ""
就会显示所有有数字命名的文件夹

[ Last edited by huahua0919 on 2008-5-6 at 03:01 PM ]
14 发表于 2008-05-06 15:07 ·  中国 吉林 延边朝鲜族自治州 电信
初级用户
积分 20
发帖 6
注册 2007-09-22 17:33
18年会员
UID 98063
性别 男
状态 离线
Originally posted by huahua0919 at 2008-5-6 02:52 PM:
按照你那写法,所有显示的只是单个数字的文件夹


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

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

[ Last edited by itrui on 2008-5-6 at 03:14 PM ]
15 发表于 2008-09-14 15:33 ·  中国 重庆 奉节县 电信
中级用户
★★
积分 363
发帖 162
注册 2007-04-22 21:31
19年会员
UID 86104
性别 男
状态 离线
我是一句都没看懂,太菜了
论坛跳转: