如何编写批处理脚本仅删除Debug子文件夹中的.exe文件?
递归删除特定Debug子文件夹中的.exe文件
现有批处理命令 del *.exe /s 会递归删除当前目录及所有子目录下的所有.exe文件,现在需要实现仅删除所有名为Debug的子文件夹中的.exe文件,同时保留其他文件夹内的.exe文件。
你之前尝试的几个命令都无法实现需求,原因如下:
del Debug\*.exe /s:仅会删除当前目录下直接存在的Debug文件夹里的.exe,不会递归查找其他层级目录中的Debug文件夹del *Debug\*.exe /s:语法错误,通配符*不能放在文件夹名开头这样使用,系统无法识别匹配的路径del *\Debug\*.exe /s:del命令的/s参数不支持这种路径匹配模式,无法定位到所有子层级的Debug文件夹
正确的实现方式是使用for /r命令来递归遍历并定位目标文件,批处理脚本写法如下:
for /r %%f in (Debug\*.exe) do del "%%f"
如果是直接在命令提示符中执行(不需要批处理脚本),把变量里的双百分号改成单百分号即可:
for /r %f in (Debug\*.exe) do del "%f"
这个命令的逻辑是:for /r会递归遍历当前目录下的所有子目录,自动匹配所有路径中包含Debug\*.exe的文件,然后逐个执行删除操作。
内容的提问来源于stack exchange,提问作者AlainD
相关产品推荐
相关产品推荐

