如何使用PowerShell从目录中删除所有Subversion文件?
答案 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
要求用引号引起来,以确保两个通配符都能被识别,尤其是当字符串中包含诸如()
之类的字符时。