2009-06-25 4 views

답변

11

다음 배치 파일은 적어도 난 당신이 (여기 DOS에서 행운)를 사용하지 않습니다 희망 Windows에서, 트릭을 할 것입니다 :

@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 

문제는 ren 숨겨진 디렉토리의 이름을 변경하기를 거부한다는 것입니다. 그리고 for /R 디렉토리를 찾으려고 할 때 겉으로보기에는 절대로 작동하지 않습니다. 그래서 여기에 디렉토리 트리를 통해 약간의 재귀를 구축하고 각 디렉토리에 대해 .svn 폴더의 숨겨진 플래그를 지우고 이름을 바꾸고 파일을 다시 숨 깁니다.

숨김 플래그를 다시 설정하고 for /D은 숨겨진 디렉토리를 반환하지 않으므로 .svn 또는 _svn 디렉토리를 입력하지 않는 것이 좋습니다.

0

엄청난 수의 디렉터리가 있었고 재귀에 실패하여이 기능이 향상되었습니다.

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