中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-14 19:04
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 一个保留某几个文件夹之外删除其它文件夹地程序
楼 主 一个保留某几个文件夹之外删除其它文件夹地程序 发表于 2007-06-01 19:31 ·  中国 广东 深圳 电信
初级用户
★★
积分 135
发帖 61
注册 2007-04-14 09:23
UID 85115
性别 男
状态 离线
说明一下:在F:\下载文件夹里面,有子文件夹1、2、3、4、5。问题是保留1和2子文件夹。删除其余地三个文件夹。用下面地程序。只能保留1这个文件夹。其它地都删除了。。

for /f "skip=1 tokens=*" %%i in ('dir F:\下载\ /b /ad ^|find /v "F:\下载\1,2"') DO rd /s /q "F:\下载\%%i"
del F:\下载\*.* /a/q/f

各位帮忙看看。要达到保留子文件夹1和2地目的,该如何改改上面地程序呢?

先在此谢过!

[ Last edited by nbic on 2007-6-1 at 07:32 PM ]
2 发表于 2007-06-01 22:16 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
UID 75624
性别 男
状态 离线
for /f %%i in ('dir F:\下载\ /b /ad ^|findstr ""') DO rd /s /q %%i
3 发表于 2007-06-01 23:03 ·  中国 广东 深圳 电信
初级用户
★★
积分 135
发帖 61
注册 2007-04-14 09:23
UID 85115
性别 男
状态 离线
Originally posted by wudixin96 at 2007-6-1 10:16 PM:
for /f %%i in ('dir F:\下载\ /b /ad ^|findstr ""') DO rd /s /q %%i


刚才试了试。不行哦。。
4 发表于 2007-06-02 00:19 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
UID 75624
性别 男
状态 离线
根据楼主的思路。这个p是要放到F:\下载下执行的。

dir F:\下载\ /b /ad的结果是:

1
2
3
4
5

@echo off
for /f %%i in ('dir F:\下载\ /b /ad ^|findstr ""') DO rd /s /q F:\下载\%%i
pause


[ Last edited by wudixin96 on 2007-6-2 at 12:23 AM ]
5 发表于 2007-06-02 00:27 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
UID 42345
状态 离线
Originally posted by wudixin96 at 2007-6-2 00:19:
根据楼主的思路。这个p是要放到F:\下载下执行的。

dir F:\下载\ /b /ad的结果是:

1
2
3
4
5

@echo off
for /f %%i in ('dir F:\下载\ /b /ad ^|findstr &quo ...

这个p是并不要放到F:\下载下执行
@echo off
for /f %%i in ('dir F:\下载\ /b /ad ^|findstr ""') DO rd /s /q F:\下载\%%i
pause
6 发表于 2007-06-02 00:29 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线

@echo off
for /f %%a in ('dir /b/ad F:\下载\? ^| findstr /v "1 2"') do rd /s/q F:\下载\%%a


[ Last edited by lxmxn on 2007-6-2 at 05:53 PM ]
7 发表于 2007-06-02 09:59 ·  中国 广东 深圳 电信
初级用户
★★
积分 135
发帖 61
注册 2007-04-14 09:23
UID 85115
性别 男
状态 离线
6楼的方法不错。。谢了。。
8 发表于 2007-06-02 10:54 ·  中国 江西 南昌 电信
银牌会员
★★★
天的白色影子
积分 2,343
发帖 636
注册 2004-03-06 00:00
UID 19350
性别 男
状态 离线
这个太简单了
考虑复杂一些的

测试路径结构如下:
test
- test1
- test2
- test21
- test22
- test221
- test3
- test31
- test311
- test32

要求:

删除test22和test311以外的所有文件夹
原目录结构保留
test221目录要删除
test31下的文件要删除
9 发表于 2008-03-07 11:01 ·  中国 新疆 昌吉回族自治州 电信
新手上路
积分 12
发帖 5
注册 2008-01-21 17:13
UID 109187
性别 男
状态 离线
呵呵,谢谢各位,学习了啊.........
10 发表于 2008-04-11 16:38 ·  中国 广东 广州 荔湾区 电信
初级用户
积分 70
发帖 38
注册 2007-05-23 07:20
UID 89024
性别 男
状态 离线
我用 lxmxn版主的方法试了一下,在我的计算机就出现这样的错误:"findstr不是内部命令或外部命令,也不是可运行的程序或批处理文件",什么原因?请各位大侠帮助解答。是不是我的DOS版本问题呢?

[ Last edited by Li103Z on 2008-4-11 at 04:40 PM ]
11 发表于 2008-04-13 06:53 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
UID 59080
状态 离线
Originally posted by Li103Z at 2008-4-11 16:38:
我用 lxmxn版主的方法试了一下,在我的计算机就出现这样的错误:"findstr不是内部命令或外部命令,也不是可运行的程序或批处理文件",什么原 ...

请说明你的运行环境。
12 发表于 2008-04-17 14:27 ·  中国 上海 电信
初级用户
积分 40
发帖 17
注册 2007-08-10 14:49
UID 94928
性别 男
状态 离线
有空格肯定不行
13 发表于 2008-11-29 00:20 ·  中国 北京 鹏博士
新手上路
积分 3
发帖 2
注册 2008-11-25 21:33
UID 132095
性别 男
状态 离线
挺好用
14 发表于 2008-11-29 09:59 ·  中国 广东 电信
初级用户
★★
积分 131
发帖 119
注册 2007-06-12 22:50
UID 91125
性别 男
来自 gz
状态 离线
Originally posted by nbic at 2007-6-1 07:31 PM:
说明一下:在F:\下载文件夹里面,有子文件夹1、2、3、4、5。问题是保留1和2子文件夹。删除其余地三个文件夹。用下面地程序。只能保留1这个文件夹 ...



请把内容保存为“删除文件夹以外的文件夹和文件.bat”放到目录里运行

@echo off
::删除自己以外的所有文件
for %%a in (*) do (if "%%a" neq "删除文件夹以外的文件夹和文件.bat" del "%%a" /q)
::删除指定文件夹以外所有的文件夹
for /d %%b in (*) do (if "%%b" neq "1" if "%%b" neq "2" rd "%%b" /q/s)
附件
15 发表于 2008-11-29 10:08 ·  中国 广东 电信
初级用户
★★
积分 131
发帖 119
注册 2007-06-12 22:50
UID 91125
性别 男
来自 gz
状态 离线
Originally posted by lxmxn at 2007-6-2 12:29 AM:

@echo off
for /f %%a in ('dir /b/ad F:\下载\? ^| findstr /v "1 2"') do rd /s/q F:\下载\%%a


[ Last edited by lxmxn on 2007-6-2 at 05:53 PM ]



找不到文件
附件
all.jpg
论坛跳转: