标题: 删除某一文件夹里的一些数字名字的文件夹 解决了
[打印本页]
作者: huzixuan
时间: 2007-1-25 23:02
标题: 删除某一文件夹里的一些数字名字的文件夹 解决了
我想用批处理删除QQ目录下的用户文件夹怎么建批处理?
问题补充:主要删除的是像[119056547] [228469840] 这种文件夹,其它的QQ文件
另外文件夹内有如 "R2beat"的文件夹,也包含数字,为了避免删除.所以希望可以限制
如某文件夹名:少于 3种不同数字组合 就不删除。
像是这样 "R2beat" "R2beat1" "1R2beat3" "123"
[
Last edited by huzixuan on 2007-1-27 at 12:10 AM ]
作者: NaturalJ0
时间: 2007-1-26 03:17
@echo off
setlocal enabledelayedexpansion
for /f %%i in ('dir/ad/b') do (
set /a folder=%%i
if not "!folder!"=="0" echo rd /s %%i
)
pause
演示代码,觉得没有问题,就把 echo 去掉。
============================================
修改了下:
@echo off
setlocal enabledelayedexpansion
for /f %%i in ('dir/ad/b') do (
set /a folder=0
set /a folder=%%i 2>nul
if not "!folder!"=="0" rd /s /q %%i
)
看楼主的意思是要删除QQ用户号码的目录,这段的作用是只删除数字组成的目录(0、00、000。。。这些目录除外)
试用时请先复制一份,以免因我代码有误而造成损失。
! 的意思是变量延迟,论坛有这方面详细介绍的资料,可以查阅下。
[
Last edited by NaturalJ0 on 2007-1-26 at 09:44 PM ]
作者: wyd531
时间: 2007-1-26 04:02
"!folder!"=="0"
这句是什么意思,
作者: wyd531
时间: 2007-1-26 04:17
folder两边加上!有什么作用???????????
作者: bbq123bbq
时间: 2007-1-26 05:06
2楼的代码不去掉echo 也不会删除..rd /s /q 才可以...
作者: huzixuan
时间: 2007-1-26 08:10
不对阿,2楼的帅哥你写不行
作者: jmz573515
时间: 2007-1-26 08:14
像是这样 "R2beat" "R2beat1" "1R2beat3"
我想问一下,"123"是要删除的还是要保留的?
作者: huzixuan
时间: 2007-1-26 21:22
是要删除的, 少于3个数字组合的就要删除
作者: namejm
时间: 2007-1-26 22:38
Quote: |
如某文件夹名:少于 3种不同数字组合 就不删除。
像是这样 "R2beat" "R2beat1" "1R2beat3" "123" |
|
你这样的说法是非常摸棱两可或者自相矛盾的,请你把意思表达完整,把话说清楚。
如果只是删除QQ目录下所有以数字命名的文件夹,可以使用如下代码:
@echo off
:: 放在QQ目录下运行,如果满意再去掉 echo
for /f %%i in ('dir /ad /b^|findstr "^[0-9]*$"') do echo rd /s /q %%i
pause
作者: pureobscure
时间: 2007-1-26 22:54
看来要学的还不少。初看题目只想到要用 for in do。 看完以上诸位发言才发现还有这么多变量可以设置。
不过说老实话,又看了遍楼住的帖子,没搞明白楼住到底要做什么。
作者: namejm
时间: 2007-1-26 23:08
NaturalJ0 兄在2楼的代码比较另类,充分利用了非数字不能用 set /a 来赋值的特点,在处理QQ用户文件夹的时候工作得很好。但是如果有一天,QQ的数字超过 2^31 的时候,会出错;或者要处理的不是QQ用户文件夹,而是处理纯数字命名的文件夹的话,会漏掉以08和09打头的文件夹,也不能处理以超过 2^31 的数字命名的文件夹^_^
作者: NaturalJ0
时间: 2007-1-26 23:55
还是 namejm 考虑的周道啊,你提的这些问题我还没想到过。 = =b
继续学习。
作者: huzixuan
时间: 2007-1-27 00:09
阿哈哈
谢谢 namejm
斑竹
你那个正是我想要的