首页 > 解决方案 > 删除目录中除 .bat 以外的所有文件

问题描述

我想删除 Windows 上的特定目录。我使用下面的代码。它工作正常。我想将为此进程创建的 .bat 文件放在该目录中。自然,.bat 文件也会被删除。我希望从删除中排除 .bat 文件。我应该如何处理代码?

Echo batch file delete folder
@RD /S /Q "D:\testfolder" 

标签: windowsbatch-filedirectoryrmdirdelete-directory

解决方案


您所要做的就是通过打开一个虚拟读取句柄来锁定您的批处理文件。

echo The batch file wont be deleted because it is locked by a dummy input redirection.
rd /s /q "D:\testfolder" 9<"%~f0"

当然,该命令会显示一条错误消息rd,因为目标目录中至少有一个文件(您自己的批处理文件)无法删除。您可以通过将标准错误流重定向到nul设备来隐藏该消息:

rd /s /q "D:\testfolder" 9<"%~f0" 2>nul 

推荐阅读