标题: [原创]批量删除QQ生成的号码文件夹(实用哦!!!!)
[打印本页]
作者: lzmuhioin
时间: 2008-5-6 13:10
标题: [原创]批量删除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
作者: BWSkyer
时间: 2008-5-6 13:35
至今不知道 setlocal enabledelayedexpansion 有什么用處~~
還有你如何判斷哪些是用過的QQ呢? 看你的循環沒有看明白..
作者: itrui
时间: 2008-5-6 14:01
1.变量延迟也没用上啊
2.何必生成临时文件呢, in (set) 不是更简洁
3."tokens=* delims=" 都实现一样的功能,用一个就好了吧
4.另外还有很多其他包含数字的文件,你这样肯定会误删。
作者: lzmuhioin
时间: 2008-5-6 14:13
这是个人使用上的一种习惯了。。。至于如何判断的
我也不知道使用dir *1*. /b就不能显示出所有带1文件夹,所以就在2到9之间开始循环*%%i*当然是为了取完2至9中间的所有数字,那么至于 dir *%%i*. 那就是显示所以中间部位是数字的文件夹.
那么rd %%a /s /q 就是第从dir中获得名单从而删其及其子文件夹
作者: itrui
时间: 2008-5-6 14:19
dir *%%i*. 那就是显示所以中间部位是数字的文件夹
这句话你再好好研究研究吧
作者: lzmuhioin
时间: 2008-5-6 14:24
谢谢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
作者: lzmuhioin
时间: 2008-5-6 14:28
Originally posted by itrui at 2008-5-6 02:19 PM:
dir *%%i*. 那就是显示所以中间部位是数字的文件夹
这句话你再好好研究研究吧
看来是我解释有误,意思为只要其文件名中只要含有数字就有算是条件合格这样,就会把3DShow和flashshow2排除掉就行了
作者: itrui
时间: 2008-5-6 14:29
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
作者: huahua0919
时间: 2008-5-6 14:38
"^[0-9]*"
上面这个会列出所有文件夹的
"^[0-9][0-9]*"
作者: itrui
时间: 2008-5-6 14:47
Originally posted by huahua0919 at 2008-5-6 02:38 PM:
"^[0-9]*"
上面这个会列出所有文件夹的
"^[0-9][0-9]*"
呵呵,你冤枉我啊,我是那么写的吗?
作者: huahua0919
时间: 2008-5-6 14:52
按照你那写法,所有显示的只是单个数字的文件夹
作者: joyn
时间: 2008-5-6 14:54
好多符号我不明白用法
作者: huahua0919
时间: 2008-5-6 15:00
其实这样就行了
findstr "[0-9]" or findstr "[0123456789]"
就会显示所有有数字命名的文件夹
[ Last edited by huahua0919 on 2008-5-6 at 03:01 PM ]
作者: itrui
时间: 2008-5-6 15:07
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 ]
作者: clian76
时间: 2008-9-14 15:33
我是一句都没看懂,太菜了
作者: everest79
时间: 2008-9-15 14:49
dir /ad /b|findstr "^[0-9]*$"
^ 行位置: 行的开始
[class] 字符类别: 任何在字符集中的字符
* 重复: 以前字符或类别出现零或零以上次数
$ 行位置: 行的终点
8l是正确的
作者: 23112656
时间: 2008-9-15 17:04
我只是搞不懂
* 重复: 以前字符或类别出现零或零以上次数
这个意思是为什么?
作者: HAT
时间: 2008-9-15 17:15
*是统配符
1*表示1出现零次或零次以上