批处理删除目录下的所有文件
遍历当前目录树下的所有文件
1 | for /r . %i in (*.md) do echo %i |
对上述代码,修改一下就可删除掉这些文件,如下所示。
删除当前目录树下的所有markdown文件
1 | for /r . %i in (*.md) do del "%i" |
但这样不好的地方就是目录没有删除掉,会留下大量的空目录。
遍历某个目录下的所有目录
1 | for /d %i in (E:\Blog\blog5MD\C语言\*) do @echo %i |
运行结果:1
2
3
4
5
6
7E:\Blog\blog5MD\C语言>for /d %i in (E:\Blog\blog5MD\C语言\*) do @echo %i
E:\Blog\blog5MD\C语言\Debug
E:\Blog\blog5MD\C语言\代码规范
E:\Blog\blog5MD\C语言\排序
E:\Blog\blog5MD\C语言\文件
E:\Blog\blog5MD\C语言\结构体
E:\Blog\blog5MD\C语言>
这样就好办了,我只要删除掉这些遍历出来的目录树即可。1
for /d %i in (E:\Blog\blog5MD\C语言\*) do @rmdir /s %i
运行结果:1
2
3
4
5
6
7
8E:\Blog\blog5MD\C语言>for /d %i in (E:\Blog\blog5MD\C语言\*) do @rmdir /s %i
E:\Blog\blog5MD\C语言\Debug, 是否确认(Y/N)? y
E:\Blog\blog5MD\C语言\代码规范, 是否确认(Y/N)? y
E:\Blog\blog5MD\C语言\排序, 是否确认(Y/N)? y
E:\Blog\blog5MD\C语言\文件, 是否确认(Y/N)? y
E:\Blog\blog5MD\C语言\结构体, 是否确认(Y/N)? y
E:\Blog\blog5MD\C语言>
可以看到这样是没有问题的,接下来加上/q
参数让删除目录树命令rmdir
不询问即可。1
for /d %i in (E:\Blog\blog5MD\C语言\*) do @rmdir /q /s %i
这样就删除掉了E:\Blog\blog5MD\C语言\
这个目录下的所有目录树,但是这个目录E:\Blog\blog5MD\C语言\
下的文件就不会被删掉,因为我们只遍历目录,然后删除目录,文件还没有操作。删除文件也简单,直接使用del
命令即可。
最终代码
删除E:\Blog\blog5MD\C语言
目录下的所有markdown文件。1
2for /d %%i in (E:\Blog\blog5MD\C语言\*) do @rmdir /q /s %%i
del del E:\Blog\blog5MD\C语言\*.md