中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-06 22:28
48,039 主题排行 / 350,124 发帖 / 今日 0 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » 怎样删除指定文件夹里的所有文件?
可打印版本  2,125 / 15
第1楼 liuwushu 发表于 2007-12-17 21:11
初级用户 发帖 35 积分 93
怎样删除指定文件夹里的所有文件?
好比我要删除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 ]
第2楼 liuwushu 发表于 2007-12-17 21:22
初级用户 发帖 35 积分 93
不知道批处理能实现这个功能吗?
第3楼 lxmxn 发表于 2007-12-17 21:31
版主 发帖 4,938 积分 11,386
先把标题改了。
第4楼 liuwushu 发表于 2007-12-17 21:36
初级用户 发帖 35 积分 93
我已经改了,不好意思啊。。。

下次不会出现这样的错误了。。。
第5楼 fastslz 发表于 2007-12-17 22:39
铂金会员 发帖 2,315 积分 5,493 来自 上海
@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
第6楼 liuwushu 发表于 2007-12-17 23:02
初级用户 发帖 35 积分 93
谢谢,,,谢谢谢谢谢谢、、、
第7楼 fastslz 发表于 2007-12-17 23:14
铂金会员 发帖 2,315 积分 5,493 来自 上海
如果不区分大小写find后面加 /i
第8楼 liuwushu 发表于 2007-12-17 23:19
初级用户 发帖 35 积分 93
好像删除不了文件夹
只能显示出那些多的文件夹

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

就出现这样
第9楼 liuwushu 发表于 2007-12-17 23:23
初级用户 发帖 35 积分 93
去掉echo就会出现

系统找不到指定的文件。
系统找不到指定的文件。
系统找不到指定的文件。
请按任意键继续. . .
第10楼 fastslz 发表于 2007-12-17 23:23
铂金会员 发帖 2,315 积分 5,493 来自 上海
不是说了实际应用去掉echo

rd /q/s不能随便乱用的,我们写代码加上echo是为你们负责
第11楼 fastslz 发表于 2007-12-17 23:24
铂金会员 发帖 2,315 积分 5,493 来自 上海
@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
第12楼 liuwushu 发表于 2007-12-17 23:30
初级用户 发帖 35 积分 93
谢谢大哥现在可以了,我现在就是有个新的问题。现在可以删除Application Data文件夹里的文件夹,要是想删除Application Data里面的文件呢? bek文件夹里面的东西保留。
第13楼 fastslz 发表于 2007-12-17 23:40
铂金会员 发帖 2,315 积分 5,493 来自 上海
最后再加
del /f/q "C:\Documents and Settings\All Users\Application Data\*.*"
第14楼 liuwushu 发表于 2007-12-18 10:23
初级用户 发帖 35 积分 93
@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 ]
第15楼 liuwushu 发表于 2007-12-18 10:59
初级用户 发帖 35 积分 93
找找老帖就有了我要的,,,呵呵,

以下为演示代码,必须放在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
1 2  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023