strumento a riga di comando per eliminare cartella con un nome specificato in modo ricorsivo in Windows?

StackOverflow https://stackoverflow.com/questions/521382

Domanda

Voglio eliminare ogni "_svn" in ogni cartella e sottocartella ...

Ad esempio

c:\
  proyect1
   _svn
   images
     _svn
     banner
       _svn
     buttons
       _svn

Poi corro qualcosa come

rm-recurse c:\proyect1 _svn

E dovrei ottenere:

c:\
  proyect1
   images
     banner
     buttons

La cosa ideale sarebbe un piccolo EXE stand-alone o qualcosa del genere.

- Grazie Grant, non appena ho postato la questione che ho visto SVN documentazione sulla SVN comando export, ma vogliono anche eliminare il _vti_ * cartelle roba Visual Studio crea, quindi dovrò anche esplorare la soluzione for.

È stato utile?

Soluzione

Simile a BlackTigerX del "per", stavo per suggerire

for /d /r . %d in (_svn) do @if exist "%d" rd /s/q "%d"

Altri suggerimenti

Il tempo di imparare un po ' PowerShell ; o)

Get-ChildItem -path c:\projet -Include '_svn' -Recurse -force | Remove-Item -force -Recurse

La prima parte trova ogni cartella _svn in modo ricorsivo. La forza è usato per trovare le cartelle nascoste. La seconda parte è usata per eliminare queste cartelle e il loro contenuto. Rimuovere commandlet è dotato di un pratico parametro "whatif" che permette di visualizzare in anteprima che cosa sarà fatto.

PowerShell è disponibile per Windows XP e Windows Vista. E 'presente su Windows 7 e Windows Server 2008 R2 per impostazione predefinita.

E 'un prodotto MS, è gratuito, e le rocce!

Per l'inclusione / invocazione dall'interno di un uso del file BATCH (dire per la rimozione di Debug e Release cartella):

for /d /r . %%d in (Debug Release) do @if exist "%%d" echo "%%d" && rd /s/q "%%d"

doppia % sono tenuti all'interno di un file batch per lavorare come caratteri di escape. Altrimenti segnala l'errore di sintassi.

Grazie.

for /f "usebackq" %d in (`"dir _svn /ad/b/s"`) do rd /s/q "%d"

http: //ebersys.blogspot. com / 2008/07 / ricorsivamente-delete-svn-cartelle-facile-way.html

In Windows? Se si utilizza TortoiseSVN è possibile utilizzare il comando export per esportare una copia del progetto senza le .svn / _svn cartelle.

import os
import shutil

curdir = os.path.abspath(os.path.dirname(__file__))

def removedir(dirname, name = ".svn"):
    if os.path.isdir(dirname):
        for file in os.listdir(dirname):
            if os.path.isdir(os.path.join(dirname, file)) and file == name:
                thedir = os.path.join(dirname, name)
                shutil.rmtree(thedir)
                print ".",
            else:
                removedir(os.path.join(dirname, file))

Credo che si può provare questo script Python, che sarà posto sotto qualsiasi sistema operativo, se hai installato Python.

Un'altra opzione da Forum SVN : utilizzare XCopy con un file che contiene l'elenco dei file / directory da escludere (.svn o _svn in questo caso)

XCopy C:\VersionedFolder C:\UnVersionedFolder /EXCLUDE:C:\No.SVN.txt /E /C /I /F /R /Y

Ecco ... con FreeCommander o TotalCommander

http://www.broobles.com/blog/posts/36

socendani

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top