batch-file - 如何使用批处理脚本删除特定文件夹中的所有文件
问题描述
有人可以帮我创建一个批处理脚本来删除特定文件夹中的所有文件/子文件夹吗?
我试过这个:
set dir="C:\Users\nikola.bakrachevski\Desktop\TEST B"
FOR /D /R %dir% %%X IN (*.tmp) DO RMDIR /S /Q "%%X"
exit
解决方案
清空目录而不是目录本身的最简单方法是将其设为当前目录。您不能删除当前目录,将输出一个错误,告诉您它不能被删除,因为它正在被另一个进程(这个)使用。我们可以简单地将该错误重定向到 NUL 设备,但仍会删除整个内容(前提是具有这样做所需的权限)。
在此示例中,我使用PushD
命令进入要清空的目录,(使其成为当前目录)PopD
,然后使用,退出(进入使用之前的当前目录PushD
)。
@Set "dirToEmpty=%UserProfile%\Desktop\TEST B"
@PushD "%dirToEmpty%" 2> NUL && (RD /S /Q "%dirToEmpty%" 2> NUL & PopD)
这&&
是一个特殊的条件运算符,它基本上仅在前一个命令返回成功时才运行命令。在这种情况下,我使用它,以便如果由于某种原因进入目录不成功,则不会发生删除。
推荐阅读
- javascript - 比较 2 个数组 - 一个包含字符串,另一个包含数字。重复字符串的总数
- javascript - JS if window.location.href 包含特定组合
- python - 在python中识别零值的数据
- uwp - 什么是 Windows 应用程序打包项目?
- python - 获取通过打破一个数字形成的所有可能的完美正方形列表
- jenkins - TFS 与 Jenkins 的集成无法解析 XML
- xml - 在代码中嵌入广告,只显示一个空字段
- django - django中根据国外模型获取类别列表
- c++ - 使用正则表达式在 C++ 中标记流
- javascript - addEventListener 或从 HTML 调用函数?