¿Cómo puedo cambiar el nombre de todos los directorios ocultos bajo el directorio actual en DOS?

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

  •  22-07-2019
  •  | 
  •  

Pregunta

¿Cómo puedo cambiar el nombre de todos los directorios ocultos bajo el directorio actual en DOS? Acabo de actualizar Tortoise SVN para usar _svn en lugar de .svn. Noté que todavía funciona si solo cambio el nombre de las carpetas.

¿Fue útil?

Solución

El siguiente archivo por lotes hará el truco, al menos en Windows que espero que esté utilizando (no hay suerte en DOS aquí):

@echo off
call :recurse .
goto :eof

:recurse
for /d %%d in (*) do (
    pushd %%d
    attrib -H .svn >nul 2>&1
    ren .svn _svn >nul 2>&1
    attrib +H _svn >nul 2>&1
    call :recurse
    popd
)
goto :eof

El problema es que ren se niega a cambiar el nombre de los directorios ocultos. Y for / R aparentemente nunca funciona cuando se trata de encontrar directorios. Así que estoy creando una pequeña recursión a través del árbol de directorios aquí y para cada directorio que estoy ingresando borro la bandera oculta de la carpeta .svn , la renombre y oculto el archivo nuevamente.

Debido a volver a configurar el indicador oculto y para / D nunca devolver directorios ocultos, esto también tiene la ventaja de no intentar ingresar el .svn o _svn directorios.

Otros consejos

Esto funcionó mejor para mí ya que tenía una gran cantidad de directorios y el recursivo falló.

FOR /R %%f IN (_svn) DO IF EXIST "%%f" (
    ATTRIB -h "%%f"
    RENAME "%%f" .svn
    ATTRIB +h "%%f"
)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top