34 votes

Powershell: Comment récursivement supprimer tous les fichiers svn

Comment pourrait-on supprimer tous les fichiers de sous-version du répertoire avec Powershell?

43voto

stej Points 14257

Si vous voulez vraiment simplement supprimer les répertoires .svn, ceci pourrait vous aider:

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

Edit: Ajouté -Force param à gci pour lister les répertoires cachés et raccourcir le code.

Keith a raison de dire que si vous devez éviter la suppression de fichiers avec l'extension .svn, vous devez filtrer les éléments à l'aide de ? .

10voto

Keith Hill Points 73162

En supposant que vous ne voulez pas supprimer tous les fichiers qui pourraient aussi avoir .svn extension:

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

EDIT:

Microsoft a répondu à la suggestion dans les commentaires ci-dessous que Keith ouvert sur MS Connecter! Comme de Powershell V3 vous pouvez se débarrasser de l'excès (très lent) pipe Where {$_.PSIsContainer} et l'utilisation -directory à la place:

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

PS v3 peut être téléchargé pour windows 7 Ici:

http://www.microsoft.com/en-us/download/details.aspx?id=34595

5voto

Sofahamster Points 619

Pourquoi ne pas utiliser SVN Export pour obtenir une extraction propre sans répertoires .svn?

Modifier

Vous voudrez peut-être regarder la réponse ici:

http://stackoverflow.com/questions/534798/command-line-to-delete-matching-files-and-directories-recursively

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X