如何使用dos命令批处理清空一文件夹下所以子目录的文件夹以及文件----在线等!!

trainli 2005-11-24 10:34:00
如我在D盘下有一文件夹data,而data下有tex再下来tex下面有tex01,tex02......tex40
现在我想用dos命令把tex01,tex02....tex40下的所以文件夹以及文件都清空(即删除)但要保留着
tex01,tex02....tex40文件夹。请问如果使用dos命令呢?其中的语法是怎么样????我原来用rd和rmdir都没有得到欲期的结果!请指教--在线等!
...全文
2643 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
spark_li 2005-11-29
  • 打赏
  • 举报
回复
你把执行结果贴出来看看
再把你filelist.txt的内容贴出来看看
trainli 2005-11-29
  • 打赏
  • 举报
回复
还是不行,看来还是结了算了!
scz123 2005-11-28
  • 打赏
  • 举报
回复
是不是有些文件正在被使用啊?那就不能被删除的了
还有如果是NTFS分区的话,还要检查以下权限
螺丝刀2000 2005-11-26
  • 打赏
  • 举报
回复
原来DOS下也可以用这么好用的命令啊,,,
trainli 2005-11-25
  • 打赏
  • 举报
回复
texrmdir.cmd
for /L %%i in (1,1,9) do @dir /s /b d:\data\tex\tex0%%i >>d:\filelist.txt
for /L %%i in (10,1,49) do @dir /s /b d:\data\tex\tex%%i >>d:\filelist.txt
for /F %%i in (d:\filelist.txt) do @rmdir /s /q %%i

texdel.cmd
del /q d:\data\tex01\
del /q d:\data\tex02\
-------
del /q d:\data\tex49\


看来我得做这两个批处理文件了,没有办法了!

trainli 2005-11-25
  • 打赏
  • 举报
回复
sorry,还是不可以,难道真的要用del不成??
trainli 2005-11-25
  • 打赏
  • 举报
回复
就是用那个也不可以我也测试过了,那就让我再测试多一次再说吧
spark_li 2005-11-25
  • 打赏
  • 举报
回复
晕了,我的是经过测试了的,
你没有看到我的回帖啊,
最后的for语句要修改啊

for /F %%i in (d:\filelist.txt) do @rmdir /s /q %%i

修改为
for /F "delims=" %i in (d:\filelist.txt) do @rmdir /s /q "%i"
scz123 2005-11-24
  • 打赏
  • 举报
回复
哦,错了,data下还有txt目录,修改以下:
cd /d d:\data
dir txt /a:d /b >dirlist.txt
rd txt /q /s
md txt
cd txt
for /f %%i in (d:\data\dirlist.txt) do md %%i
scz123 2005-11-24
  • 打赏
  • 举报
回复
cd /d d:\
dir data /a:d /b >dirlist.txt
rd data /q /s
md data
cd data
for /f %%i in (d:\dirlist.txt) do md %%i
spark_li 2005-11-24
  • 打赏
  • 举报
回复
如果文件没有特殊属性的话
建议把dir /s /b 修改为dir /b
就可以了,这样还不会抱错
spark_li 2005-11-24
  • 打赏
  • 举报
回复
解释一下,前面两行是用dir命令创建文件与目录列表

第三行则根据列表删除
spark_li 2005-11-24
  • 打赏
  • 举报
回复
for /L %i in (1,1,9) do @dir /s /b d:\data\txt\txt0%i >>d:\filelist.txt
for /L %i in (10,1,40) do @dir /s /b d:\data\txt\txt%i >d:\filelist.txt

for /F %i in (d:\filelist.txt) do @rmdir /s /q %i

如果你要在批处理文件中运行的话
请把%i修改为%%i
trainli 2005-11-24
  • 打赏
  • 举报
回复
有点不算很理想,如果我的目录是分配有权限,但以上所说的,是删除后得建一个文件夹,但这样重建好能一定按原来的分配好权限吗?

比如以上所说的是一个考试考生存放的文件夹目录,但我在考试结束后我如何做到直接点击回收考生文件夹后而自动清除呢?这个我看到很多的考试软件是都有这样的功能,不知道他们是如何做到的呢???
shao4966 2005-11-24
  • 打赏
  • 举报
回复
如果deltree不好用那就用rd,
批处理文件如下:
rd d:\data\tex\tex01\
md d:\data\tex\tex01
rd d:\data\tex\tex02\
md d:\data\tex\tex02
………………………………
rd d:\data\tex\tex40\
md d:\data\tex\tex40

shao4966 2005-11-24
  • 打赏
  • 举报
回复
建个bat文件:
del d:\data\tex\tex01\*.*
del d:\data\tex\tex02\*.*
………………………………
del d:\data\tex\tex40\*.*

deltree d:\data\tex\tex01\
deltree d:\data\tex\tex02\
…………………………
deltree d:\data\tex\tex40\

spark_li 2005-11-24
  • 打赏
  • 举报
回复
好的,完美的解决办法
目录有空格也没有关系

主要是修改for语句,加参数
修改为

for /L %i in (1,1,9) do @dir /s /b d:\data\txt\txt0%i >>d:\filelist.txt
for /L %i in (10,1,40) do @dir /s /b d:\data\txt\txt%i >d:\filelist.txt

for /F "delims=" %i in (d:\filelist.txt) do @rmdir /s /q "%i"


spark_li 2005-11-24
  • 打赏
  • 举报
回复
哈哈,希望你目录没有有空格的,如果没有就简单得多

for /F %%i in (d:\filelist.txt) do @del /F /s /q %%i*

在后面加个*就可以了
spark_li 2005-11-24
  • 打赏
  • 举报
回复
我知道问题所在了,请等等,看能不能解决:)
trainli 2005-11-24
  • 打赏
  • 举报
回复
但是只是直接用del d:\data\tex\tex01\它就可以删除得了,真是不解,
加载更多回复(6)

6,871

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧