herramienta de línea de comandos para borrar una carpeta con un nombre especificado de forma recursiva en Windows?
-
22-08-2019 - |
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
.
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.