首页 > 解决方案 > 如何使用批处理脚本删除特定文件夹中的所有文件

问题描述

有人可以帮我创建一个批处理脚本来删除特定文件夹中的所有文件/子文件夹吗?

我试过这个:

set dir="C:\Users\nikola.bakrachevski\Desktop\TEST B"
FOR /D /R %dir% %%X IN (*.tmp) DO RMDIR /S /Q "%%X"
exit

标签: batch-file

解决方案


清空目录而不是目录本身的最简单方法是将其设为当前目录。您不能删除当前目录,将输出一个错误,告诉您它不能被删除,因为它正在被另一个进程(这个)使用。我们可以简单地将该错误重定向到 NUL 设备,但仍会删除整个内容(前提是具有这样做所需的权限)

在此示例中,我使用PushD命令进入要清空的目录,(使其成为当前目录)PopD ,然后使用,退出(进入使用之前的当前目录PushD

@Set "dirToEmpty=%UserProfile%\Desktop\TEST B"
@PushD "%dirToEmpty%" 2> NUL && (RD /S /Q "%dirToEmpty%" 2> NUL & PopD)

&&是一个特殊的条件运算符,它基本上仅在前一个命令返回成功时才运行命令。在这种情况下,我使用它,以便如果由于某种原因进入目录不成功,则不会发生删除。


推荐阅读