阻止命令“del / s”进入文件夹

时间:2010-06-09 13:25:43

标签: svn bash batch-file

我需要以递归方式从svn存储库中删除不必要的文件,并且我有以下批处理文件来执行此操作:

@echo on
del /s ~*.*
del /s *.~*
del /s Thumbs.db

但是,这也是删除.svn /子文件夹下的条目。有没有办法阻止在.svn /文件夹下执行这些命令,这样就不会搞砸了?

提前致谢!

编辑:使用Bash(cygwin)的解决方案也适用于我,因为我只需要这样做一次。

2 个答案:

答案 0 :(得分:2)

del ~*.*
del *.~*
del Thumbs.db
for /d %%a in (*) do (
    if not "%%a" == ".svn" (
      cd %%a
      del /s ~*.*
      del /s *.~*
      del /s Thumbs.db
      cd ..
    )
)

答案 1 :(得分:1)

不知道如何在批处理文件中执行此操作,但是bash解决方案只是:

find . -name .svn -prune -o -print | egrep "/~.*|/[^/].*\.~.*$|/Thumbs.db" | xargs rm -f

虽然我建议先重定向到文件然后再注视文件。

第一个命令查找不在.svn子目录中的所有内容。第二个命令选择那些 你要删除的东西,第三个删除它们。