我想删除每个文件夹和子文件夹中的每个“_svn”...

例如

c:\
  proyect1
   _svn
   images
     _svn
     banner
       _svn
     buttons
       _svn

然后我运行类似的东西

rm-recurse c:\proyect1 _svn

我应该得到:

c:\
  proyect1
   images
     banner
     buttons

理想的东西是一个小型的独立 EXE 或类似的东西。

- 感谢格兰特,一旦我发布了我看到的问题 SVN 有关 SVN 导出命令的文档,但我还想删除 Visual Studio 创建的 _vti_* 文件夹内容,因此我还将探索 for 解决方案。

有帮助吗?

解决方案

类似于 BlackTigerX 的“for”,我打算建议

for /d /r . %d in (_svn) do @if exist "%d" rd /s/q "%d"

其他提示

有时间学习一些 电源外壳 ;o)

Get-ChildItem -path c:\projet -Include '_svn' -Recurse -force | Remove-Item -force -Recurse

第一部分递归地查找每个 _svn 文件夹。强制用于查找隐藏文件夹。第二部分用于删除这些文件夹及其内容。删除命令行开关带有一个方便的“whatif”参数,可以预览将要执行的操作。

PowerShell 适用于 Windows XP 和 Windows Vista。默认情况下,它存在于 Windows 7 和 Windows Server 2008 R2 上。

这是微软的产品,免费,而且非常棒!

对于批处理文件中的包含/调用(例如删除调试和发布文件夹):

for /d /r . %%d in (Debug Release) do @if exist "%%d" echo "%%d" && rd /s/q "%%d"

双倍的 % 在批处理文件中需要用作转义字符。否则报告语法错误。

谢谢。

for /f "usebackq" %d in (`"dir _svn /ad/b/s"`) do rd /s/q "%d"

http://ebersys.blogspot.com/2008/07/recursively-delete-svn-folders-easy-way.html

在Windows 中?如果您使用 tortoiseSVN,您可以使用导出命令导出项目的副本,而不包含 .svn/_svn 文件夹。

import os
import shutil

curdir = os.path.abspath(os.path.dirname(__file__))

def removedir(dirname, name = ".svn"):
    if os.path.isdir(dirname):
        for file in os.listdir(dirname):
            if os.path.isdir(os.path.join(dirname, file)) and file == name:
                thedir = os.path.join(dirname, name)
                shutil.rmtree(thedir)
                print ".",
            else:
                removedir(os.path.join(dirname, file))

我想你可以尝试这个Python脚本,如果你安装了Python,它可以在任何操作系统下运行。

另一种选择来自 SVN论坛:将 XCopy 与包含要排除的文件/目录列表的文件一起使用(在本例中为 .svn 或 _svn)

XCopy C:\VersionedFolder C:\UnVersionedFolder /EXCLUDE:C:\No.SVN.txt /E /C /I /F /R /Y

这里...使用 FreeCommander 或 TotalCommander

http://www.broobles.com/blog/posts/36

索森达尼

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top