subcarpetas por para forzar extension eliminar desde denegado comando carpetas carpeta borrar bat archivos acceso windows file utilities administration

por - eliminar carpeta windows



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

Aquí ... con FreeCommander o TotalCommander

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

socendani

Quiero eliminar cada "_svn" en cada carpeta y subcarpeta ...

Por ejemplo

c:/ proyect1 _svn images _svn banner _svn buttons _svn

Luego corro algo así como

rm-recurse c:/proyect1 _svn

Y debería obtener:

c:/ proyect1 images banner buttons

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.


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.


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!


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


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 sintaxis.

Gracias.


Similar al "para" de BlackTigerX, iba a sugerir

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



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.