我有一个这样的目录:
D:\Movies
D:\Movies\MovieTitle1\backdrops\
D:\Movies\MovieTitle2\backdrops\
D:\Movies\MovieTitle3\backdrops\
D:\Movies\MovieTitle4\backdrops\
如何编写批处理文件以删除所有名为“Backdrops”的文件夹?如果可能的话,我希望它可以从D:\驱动器开始递归运行。
我有一个这样的目录:
D:\Movies
D:\Movies\MovieTitle1\backdrops\
D:\Movies\MovieTitle2\backdrops\
D:\Movies\MovieTitle3\backdrops\
D:\Movies\MovieTitle4\backdrops\
如何编写批处理文件以删除所有名为“Backdrops”的文件夹?如果可能的话,我希望它可以从D:\驱动器开始递归运行。
简短回答:
FOR /d /r . %%d IN (backdrops) DO @IF EXIST "%%d" rd /s /q "%%d"
我从Stack Overflow的无数相同问题的答案中得到了我的答案:
这个命令没有经过测试,但我相信这个网站足够可靠,所以发布这个答案。
如Alex在评论中建议的,这个批处理脚本应该是万无一失的:
D:
FOR /d /r . %%d IN (backdrops) DO @IF EXIST "%%d" rd /s /q "%%d"
FOR /d /r . %d IN ("__pycache__") DO @IF EXIST "%d" rd /s /q "%d"
。 - Shital Shahzsh: unknown file attribute: _
。 - Tjorriemorriecmd.bat
文件并添加了以下代码:FOR /d /r . %%d IN ("node_modules") DO @IF EXIST "%%d" rd /s /q "%%d"
,它起作用了。 - maheshwaghmare@echo off
FOR /d /r %%F IN (obj?) DO (
echo deleting folder: %%F
@IF EXIST %%F RMDIR /S /Q "%%F"
)
FOR /d /r %%F IN (bin?) DO (
echo deleting folder: %%F
@IF EXIST %%F RMDIR /S /Q "%%F"
)
@IF EXIST %%F RMDIR /S /Q "%%F"
而非常长的路径可能仍然会产生错误。 - Michael Argentinimkdir \empty
,然后在每个RMDIR行的上面插入此行以在删除之前清除内容。这将处理无法通过RMDIR删除的长路径项:@IF EXIST %%F robocopy "\empty" "%%F" /MIR
。最后通过删除空目录来完成批处理文件:rmdir /empty
。 - Michael Argentini
D:\
上运行此文件,您需要将其放入D:\
中,或者在for /d /r
循环之前添加cd /d D:\
。 - Alex"%d" rd /S /Q "%d"
(大写的/s和/q)。否则,将被拒绝访问非空目录。 - Łukasz Rząsa