¿Herramienta de línea de comandos para eliminar la carpeta con un nombre especificado recursivamente en Windows?

Quiero eliminar cada “_svn” en cada carpeta y subcarpeta …

Por ejemplo

 do:\
   proyecto1
    _svn
    imágenes
      _svn
      bandera
        _svn
      botones
        _svn

Luego corro algo así como

rm-recurse c:\proyect1 _svn 

Y debería obtener:

 do:\
   proyecto1
    imágenes
      bandera
      botones

Lo ideal sería un pequeño EXE autónomo o algo así.

– Gracias Grant, tan pronto como publiqué la pregunta, vi documentación SVN sobre el comando de exportación SVN, pero también quiero eliminar las carpetas _vti_ * que crea Visual Studio, así que también exploraré la solución.

Similar al “para” de BlackTigerX, iba a sugerir

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

Es hora de aprender algo de PowerShell ; o)

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

La primera parte encuentra cada carpeta _svn recursivamente. Force se usa para encontrar carpetas ocultas. La segunda parte se usa para eliminar estas carpetas y sus contenidos. Quitar el comando viene con un práctico parámetro “whatif” que permite previsualizar lo que se hará.

PowerShell está disponible para Windows XP y Windows Vista. Está presente en Windows 7 y en Windows Server 2008 R2 de forma predeterminada.

Es un producto MS, es gratis, ¡y es genial!

Para la inclusión / invocación desde un archivo BATCH use (digamos para eliminar la carpeta Debug and Release):

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

Se requieren el doble % dentro de un archivo de proceso por lotes para funcionar como caracteres de escape. De lo contrario, informa error de syntax.

Gracias.

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

http://ebersys.blogspot.com/2008/07/recursively-delete-svn-folders-easy-way.html

En Windows? Si está utilizando tortuga SVN, puede usar el comando de exportación para exportar una copia del proyecto sin las carpetas .svn / _svn.

 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 puedes probar este script de Python, que funcionará bajo cualquier sistema operativo si tienes instalado Python.

Otra opción del Foro SVN : use XCopy con un archivo que contenga la lista de archivos / directorios que se excluirán (.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

    Intereting Posts