代码之家  ›  专栏  ›  技术社区  ›  epitka

如何使用PowerShell递归删除所有SVN文件

  •  34
  • epitka  · 技术社区  · 15 年前

    如何使用PowerShell从目录中删除所有子版本文件?

    4 回复  |  直到 6 年前
        1
  •  43
  •   stej    15 年前

    如果确实要删除.svn目录,这将有助于:

    gci c:\yourdirectory -include .svn -Recurse -Force | 
       Remove-Item -Recurse -Force
    

    编辑: 补充 -Force 帕拉姆 gci 列出隐藏目录并缩短代码。

    基思是对的,你需要避免删除扩展名为.svn的文件,你应该使用 ? .

        2
  •  10
  •   Peter Mortensen icecrime    9 年前

    假设您不想删除任何扩展名为.svn的文件:

    Get-ChildItem $path -r -include .svn -Force | Where {$_.PSIsContainer} |
        Remove-Item -r -force
    

    微软在下面的评论中回应了基思在MS Connect上打开的建议!从PowerShell v3开始,您可以去掉 Where {$_.PSIsContainer} 使用 -directory 而是:

    gci $path -r -include .svn -force -directory | Remove-Item -r -force
    

    可以下载PowerShell v3 for Windows 7 在 Windows Management Framework 3.0 .

        3
  •  4
  •   Community CDub    8 年前

    如何使用 SVN Export 要在没有.svn目录的情况下获得干净的签出吗?

    编辑

    你可能想看看这里的答案:

    Command line to delete matching files and directories recursively

        4
  •  1
  •   L_J    6 年前

    除非您希望删除名称中包含特定字符串的所有文件,否则stej的答案是正确的。在这种情况下,您应该使用:

    gci "your_path" -include \*"specific_string"\* -Recurse -Force | Remove-Item -Recurse -Force
    

    笔记:
    your_path 只有包含空格或特殊字符时才需要引号。

    specific_string 需要引号以确保两个通配符都可以识别,特别是当字符串包含诸如 () .