herramienta de línea de comandos para borrar una carpeta con un nombre especificado de forma recursiva en Windows?

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

Pregunta

Quiero borrar todos los "_svn" en cada carpeta y subcarpeta ...

Por ejemplo

c:\
  proyect1
   _svn
   images
     _svn
     banner
       _svn
     buttons
       _svn

Luego ejecutar algo como

rm-recurse c:\proyect1 _svn

Y que debería obtener:

c:\
  proyect1
   images
     banner
     buttons

Lo ideal sería una pequeña EXE independiente o algo por el estilo.

- Gracias Grant, tan pronto como me envió la pregunta vi SVN documentación sobre el SVN comando de exportación, pero también desea eliminar el _vti_ * carpetas rellenan Visual Studio crea, por lo que también va a explorar la solución for.

¿Fue útil?

Solución

Al igual que en BlackTigerX de "para", que iba a sugerir

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

Otros consejos

Es hora de aprender algo PowerShell ; o)

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

La primera parte se encuentra cada carpeta _svn de forma recursiva. Se usa la fuerza para encontrar las carpetas ocultas. Segunda parte se utiliza para eliminar estas carpetas y su contenido. Retire commandlet viene con un parámetro útil "whatif", que permite una vista previa de lo que será hecho.

PowerShell está disponible para Windows XP y Windows Vista. Está presente en Windows 7 y en Windows Server 2008 R2 por defecto.

Es un producto de MS, es gratis, y que las rocas!

Para la inclusión / invocación desde dentro de un archivo BATCH uso (digamos, para la eliminación de depuración y liberación carpeta):

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

doble % se requieren dentro de un archivo por lotes para trabajar como caracteres de escape. De lo contrario los informes de error de sintaxis.

Gracias.

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

http: //ebersys.blogspot. com / 2008/07 / recursiva-delete-carpetas-sVN-fácil-way.html

En Windows? Si está utilizando TortoiseSVN puede utilizar el comando de exportación para exportar una copia del proyecto sin los Svn / _svn carpetas.

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))

Creo que se puede probar este script en Python, que funcionará con cualquier SO si tienes instalado Python.

Otra opción de SVN Foro: utilizar XCopy con un archivo que contiene la lista de archivos / directorios a excluir (svn o _svn en este caso)

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

Aquí ... con FreeCommander o TotalCommander

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

socendani

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top