2009-06-25 2 views

Antwort

11

Die folgende Batchdatei den Trick, zumindest unter Windows, die ich hoffe, Sie verwenden (kein Glück in DOS hier):

@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 

Das Problem ist, dass ren verweigert versteckte Verzeichnisse umbenennen. Und for /R scheint nie wirklich funktioniert, wenn Sie versuchen, Verzeichnisse zu finden. Also baue ich hier eine kleine Rekursion durch den Verzeichnisbaum und lösche für jedes Verzeichnis, das ich eintrage, das versteckte Flag aus dem Ordner .svn, benenne es um und verstecke die Datei erneut.

Aufgrund der Neueinstellung der versteckten Flagge und for /D nie wieder versteckte Verzeichnisse dies hat auch den schönen Vorteil, nicht versucht, die .svn oder _svn Verzeichnisse eingeben.

0

Dies funktionierte besser für mich, da ich eine große Anzahl von Verzeichnissen hatte und Rekursen fehlgeschlagen ist.

FOR /R %%f IN (_svn) DO IF EXIST "%%f" (
    ATTRIB -h "%%f" 
    RENAME "%%f" .svn 
    ATTRIB +h "%%f" 
)