中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 06:14
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 删除某一文件夹里的一些数字名字的文件夹 解决了 查看 1,262 回复 12
楼 主 删除某一文件夹里的一些数字名字的文件夹 解决了 发表于 2007-01-25 23:02 ·  中国 安徽 芜湖 电信
高级用户
★★
积分 537
发帖 219
注册 2006-10-31 21:08
19年会员
UID 69036
性别 男
来自 芜湖
状态 离线
我想用批处理删除QQ目录下的用户文件夹怎么建批处理?
问题补充:主要删除的是像 这种文件夹,其它的QQ文件

另外文件夹内有如 "R2beat"的文件夹,也包含数字,为了避免删除.所以希望可以限制
如某文件夹名:少于 3种不同数字组合 就不删除。
像是这样 "R2beat" "R2beat1" "1R2beat3" "123"

[ Last edited by huzixuan on 2007-1-27 at 12:10 AM ]
2 发表于 2007-01-26 03:17 ·  中国 江苏 苏州 联通
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线

@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 ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
huzixuan +1 2007-01-27 00:32
3 发表于 2007-01-26 04:02 ·  中国 广东 深圳 电信
初级用户
菜鸟
积分 137
发帖 49
注册 2006-12-20 04:45
19年会员
UID 74007
性别 男
状态 离线
"!folder!"=="0"
这句是什么意思,
我是一只小菜鸟,依呀依呀哟~~~
4 发表于 2007-01-26 04:17 ·  中国 广东 深圳 电信
初级用户
菜鸟
积分 137
发帖 49
注册 2006-12-20 04:45
19年会员
UID 74007
性别 男
状态 离线
folder两边加上!有什么作用???????????
我是一只小菜鸟,依呀依呀哟~~~
5 发表于 2007-01-26 05:06 ·  中国 广东 广州 花都区 电信
初级用户
★★
积分 197
发帖 77
注册 2006-09-19 14:02
19年会员
UID 63074
性别 男
状态 离线
2楼的代码不去掉echo 也不会删除..rd /s /q 才可以...
6 发表于 2007-01-26 08:10 ·  中国 安徽 芜湖 电信
高级用户
★★
积分 537
发帖 219
注册 2006-10-31 21:08
19年会员
UID 69036
性别 男
来自 芜湖
状态 离线
不对阿,2楼的帅哥你写不行
7 发表于 2007-01-26 08:14 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线
像是这样 "R2beat" "R2beat1" "1R2beat3"
我想问一下,"123"是要删除的还是要保留的?
8 发表于 2007-01-26 21:22 ·  中国 安徽 芜湖 电信
高级用户
★★
积分 537
发帖 219
注册 2006-10-31 21:08
19年会员
UID 69036
性别 男
来自 芜湖
状态 离线
是要删除的, 少于3个数字组合的就要删除
9 发表于 2007-01-26 22:38 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
如某文件夹名:少于 3种不同数字组合 就不删除。
像是这样 "R2beat" "R2beat1" "1R2beat3" "123"

  你这样的说法是非常摸棱两可或者自相矛盾的,请你把意思表达完整,把话说清楚。

  如果只是删除QQ目录下所有以数字命名的文件夹,可以使用如下代码:

@echo off
:: 放在QQ目录下运行,如果满意再去掉 echo
for /f %%i in ('dir /ad /b^|findstr "^*$"') do echo rd /s /q %%i
pause
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
huzixuan +2 2007-01-27 00:32
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
10 发表于 2007-01-26 22:54 ·  中国 北京 中移铁通
新手上路
积分 10
发帖 5
注册 2007-01-26 05:31
19年会员
UID 77710
性别 男
状态 离线
看来要学的还不少。初看题目只想到要用 for in do。 看完以上诸位发言才发现还有这么多变量可以设置。

不过说老实话,又看了遍楼住的帖子,没搞明白楼住到底要做什么。
11 发表于 2007-01-26 23:08 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  NaturalJ0 兄在2楼的代码比较另类,充分利用了非数字不能用 set /a 来赋值的特点,在处理QQ用户文件夹的时候工作得很好。但是如果有一天,QQ的数字超过 2^31 的时候,会出错;或者要处理的不是QQ用户文件夹,而是处理纯数字命名的文件夹的话,会漏掉以08和09打头的文件夹,也不能处理以超过 2^31 的数字命名的文件夹^_^
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
12 发表于 2007-01-26 23:55 ·  中国 江苏 苏州 联通
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
还是 namejm 考虑的周道啊,你提的这些问题我还没想到过。 = =b
继续学习。
13 发表于 2007-01-27 00:09 ·  中国 安徽 芜湖 电信
高级用户
★★
积分 537
发帖 219
注册 2006-10-31 21:08
19年会员
UID 69036
性别 男
来自 芜湖
状态 离线
阿哈哈
谢谢 namejm
斑竹
你那个正是我想要的
论坛跳转: