Windows批处理脚本 - 获取包含其他文件夹但不包含某个父文件夹的文件夹

时间:2015-08-13 17:24:03

标签: windows batch-file

为了获取驱动器C:\中包含名为".svn"的目录的所有目录,我只使用以下批处理文件:

@ECHO OFF
FOR /D /R C:\ %%X IN (*) DO IF EXIST "%%X\.SVN" (ECHO "%%X")

这个有效!但是从结果我还想删除已经包含.svn目录的父目录的目录。

示例,我们假设我们有以下树

C:\
C:\hello\
C:\babe\.svn
C:\babe\cool\.svn
C:\world\.svn
C:\zulu

上面的批处理文件将返回此列表(包含.svn文件夹的所有目录)

C:\babe
C:\babe\cool
C:\world

我希望批次只返回

C:\babe
C:\world

没有C:\babe\cool,因为已在父目录.svn中找到C:\babe目录

1 个答案:

答案 0 :(得分:3)

FOR /D /R C:\ %%X IN (*) DO  @IF EXIST "%%X\.SVN" IF NOT EXIST "%%X\..\.SVN" (ECHO "%%X")