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

时间:2010-02-05 20:28:36

标签: svn powershell

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

4 个答案:

答案 0 :(得分:43)

如果你真的想删除.svn目录,这可能会有所帮助:

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

编辑: 将-Force param添加到gci以列出隐藏目录并缩短代码。

Keith是正确的,您需要避免删除扩展名为.svn的文件,您应该使用?过滤项目。

答案 1 :(得分:10)

假设您不想删除任何可能还具有.svn扩展名的文件:

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

微软在下面的评论中回应了Keith在MS Connect上开启的建议!从PowerShell V3开始,您可以取消Where {$_.PSIsContainer}的额外(非常慢)管道并改为使用-directory

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

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

答案 2 :(得分:4)

如果没有.svn目录,使用SVN Export来获得干净的结账怎么样?

修改

您可能希望在此处查看答案:

Command line to delete matching files and directories recursively

答案 3 :(得分:1)

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

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

注意:
your_path仅在包含空格或特殊字符的情况下才使用引号。

specific_string要求用引号引起来,以确保两个通配符都能被识别,尤其是当字符串中包含诸如()之类的字符时。