中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎样删除指定文件夹里的所有文件?
« [1] [2] »
作者:
标题: 怎样删除指定文件夹里的所有文件? 上一主题 | 下一主题
liuwushu
初级用户





积分 93
发帖 35
注册 2006-12-20
状态 离线
『楼 主』:  怎样删除指定文件夹里的所有文件?

好比我要删除C:\Documents and Settings\All Users\Application Data 文件夹里所有文件夹,但是C:\Documents and Settings\All Users\Application Data 里的文件夹 bek文件夹要保留其它的都删掉。

[ Last edited by liuwushu on 2007-12-17 at 09:35 PM ]

2007-12-17 21:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
liuwushu
初级用户





积分 93
发帖 35
注册 2006-12-20
状态 离线
『第 2 楼』:  

不知道批处理能实现这个功能吗?

2007-12-17 21:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 3 楼』:  

先把标题改了。

2007-12-17 21:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
liuwushu
初级用户





积分 93
发帖 35
注册 2006-12-20
状态 离线
『第 4 楼』:  

我已经改了,不好意思啊。。。

下次不会出现这样的错误了。。。

2007-12-17 21:36
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 5 楼』:  

@echo off
for /f "delims=*" %%i in ('dir /ad /b "C:\Documents and Settings\All Users\Application Data"^|find /v "bek"') do echo rd /s/q "%%i"
pause
实际应用去掉echo



第一高手    第二高手

2007-12-17 22:39
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
liuwushu
初级用户





积分 93
发帖 35
注册 2006-12-20
状态 离线
『第 6 楼』:  

谢谢,,,谢谢谢谢谢谢、、、

2007-12-17 23:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 7 楼』:  

如果不区分大小写find后面加 /i



第一高手    第二高手

2007-12-17 23:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
liuwushu
初级用户





积分 93
发帖 35
注册 2006-12-20
状态 离线
『第 8 楼』:  

好像删除不了文件夹
只能显示出那些多的文件夹

rd /s/q "新建文件夹"
rd /s/q "新建文件夹 (2)"
rd /s/q "新建文件夹 (3)"
请按任意键继续. . .

就出现这样

2007-12-17 23:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
liuwushu
初级用户





积分 93
发帖 35
注册 2006-12-20
状态 离线
『第 9 楼』:  

去掉echo就会出现

系统找不到指定的文件。
系统找不到指定的文件。
系统找不到指定的文件。
请按任意键继续. . .

2007-12-17 23:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 10 楼』:  

不是说了实际应用去掉echo

rd /q/s不能随便乱用的,我们写代码加上echo是为你们负责



第一高手    第二高手

2007-12-17 23:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 11 楼』:  

@echo off
for /f "delims=*" %%i in ('dir /ad /b "C:\Documents and Settings\All Users\Application Data"^|find /v "bek"') do echo rd /s/q "C:\Documents and Settings\All Users\Application Data\%%i"
pause



第一高手    第二高手

2007-12-17 23:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
liuwushu
初级用户





积分 93
发帖 35
注册 2006-12-20
状态 离线
『第 12 楼』:  

谢谢大哥现在可以了,我现在就是有个新的问题。现在可以删除Application Data文件夹里的文件夹,要是想删除Application Data里面的文件呢? bek文件夹里面的东西保留。

2007-12-17 23:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
fastslz
铂金会员

DOS一根葱


积分 5493
发帖 2315
注册 2006-5-1
来自 上海
状态 离线
『第 13 楼』:  

最后再加
del /f/q "C:\Documents and Settings\All Users\Application Data\*.*"



第一高手    第二高手

2007-12-17 23:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
liuwushu
初级用户





积分 93
发帖 35
注册 2006-12-20
状态 离线
『第 14 楼』:  

@echo off
for /f "delims=*" %%i in ('dir /ad /b "C:\Documents and Settings\Administrator\桌面\新建文件夹\"^|find /v "bek"') do rd /s/q "C:\Documents and Settings\Administrator\桌面\新建文件夹\%%i" del /f/q "C:\Documents and Settings\Administrator\桌面\新建文件夹\*.*"
pause

加了del /f/q出现这样的问题
无效的命令行开关 - "f"。
无效的命令行开关 - "f"。
无效的命令行开关 - "f"。
无效的命令行开关 - "f"。
无效的命令行开关 - "f"。
无效的命令行开关 - "f"。
无效的命令行开关 - "f"。
无效的命令行开关 - "f"。
请按任意键继续. . .

[ Last edited by liuwushu on 2007-12-18 at 10:42 AM ]

2007-12-18 10:23
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
liuwushu
初级用户





积分 93
发帖 35
注册 2006-12-20
状态 离线
『第 15 楼』:  

找找老帖就有了我要的,,,呵呵,

以下为演示代码,必须放在E盘之外的分区运行:
CODE:  [Copy to clipboard]
--------------------------------------------------------------------------------

@echo off
for /f "delims=" %%i in ('dir /a /b e:\') do (
    set flag=
    for /f "delims=" %%j in (test.txt) do if  /i "%%i"=="%%j" set flag=1
    if not defined flag echo "e:\%%i"
)
pause
  test.txt必须放在E盘之外的分区,里面的内容为不带路径的文件夹名,一行一条记录,比如:
CODE:  [Copy to clipboard]
--------------------------------------------------------------------------------

文件夹1
文件夹2
文件夹3
文件夹4
  如果对以上演示代码的效果很满意,可以用下面的代码来删除E盘下指定文件夹外的其他所有文件或文件夹:
CODE:  [Copy to clipboard]
--------------------------------------------------------------------------------

@echo off
for /f "delims=" %%i in ('dir /a /b e:\') do (
    set flag=
    for /f "delims=" %%j in (test.txt) do if  /i "%%i"=="%%j" set flag=1
    if not defined flag del /a /f "e:\%%i" 2>nul||rd /s "e:\%%i" 2>nul
)
pause

2007-12-18 10:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: