递归删除与“* folder1 \ folder2”匹配的文件夹

时间:2011-05-27 16:23:28

标签: windows batch-file

我正在尝试删除所有.svn文件夹,只要它们位于CVS文件夹中。模式应该是这样的“* CVS \ .svn”。

但是,我在此处编写批处理脚本的尝试目前无法正常工作。这是我到目前为止所做的,虽然它不起作用。

FOR /D /R %%X IN (*CVS\.svn) DO RD /S /Q "%%X"

FOR /R CVS %%X IN (.svn) DO (RD /S /Q "%%X")

1 个答案:

答案 0 :(得分:2)

如果您开始比“CVS”目录更高一级(否则会更复杂一些),这是有效的:

for /f %d in ('dir /a:d /b /s CVS') do (
  if exist "%d\.svn\." rd /s /q "%d\.svn"
)

第一行递归地查找名为“CVS”的所有目录,然后第二行删除子目录“.svn”(如果存在)。如果您是从批处理/ shell脚本运行它,请使用%%d而不是%d