2010-02-05 15 views
33

Come si farebbe circa l'eliminazione di tutti i file Subversion da una directory usando PowerShell?Come cancellare in modo ricorsivo tutti i file SVN usando PowerShell

+7

forse questo non è applicabile, ma è possibile creare una copia del codice dal repository senza gli artefatti di subversion presenti. per esempio. usando TortoiseSVN, puoi usare 'SVN export' –

risposta

41

Se davvero si desidera eliminare solo le directory .svn, questo potrebbe aiutare:

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

Modifica: Aggiunto -Force parametro a gci per elencare le directory nascoste e abbreviare il codice.

Keith ha ragione che è necessario evitare l'eliminazione di file con estensione .svn, è necessario filtrare gli articoli utilizzando ?.

+0

c'è un motivo per cui non possiamo escludere ricorsivamente i file svn durante la copia? Ho provato Copy-Item $ source -Destination $ dest -Recurse -Exclude '.svn'. Ma non ha funzionato. Così l'ho copiato interamente e poi ho rimosso i file .svn in modo ricorsivo usando questo comando. – gprasant

+0

Non funziona. Suppongo che sia lo stesso caso di usare 'Get-ChildItem dir -recurse -exclude ..'. '-exclude' (e come ricordo bene anche' -include') non funziona bene con '-recurse'. – stej

+0

funziona perfettamente per me. Grazie –

10

Supponendo che non si desidera eliminare tutti i file che potrebbe anche aver .svn estensione:

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

Microsoft ha risposto al suggerimento nei commenti qui sotto che Keith aperto su MS Connect! Come di PowerShell V3 è possibile farla finita con il tubo extra (molto lento) per Where {$_.PSIsContainer} e utilizzare -directory invece:

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

PowerShell v3 può essere scaricato per Windows 7   a Windows Management Framework 3.0.

+0

Sì, buona cattura :) Tuttavia, non presumo che ci sia qualche file con questa estensione. – stej

+0

Non ho mai usato Subversion (solo ClearCase e TFS) quindi non ero sicuro. –

+2

BTW Non vedo l'ora che non sia necessario 'Where {$ _. PSIsContainer}' e tutto quello che devi fare è 'gci. -r -containerOnly'. Ho il mio Get-ChildItem con il compito di lavorare in questo modo ma non posso contare su altri che lo possiedono. :-( –

Problemi correlati