2011-09-11 7 views
1

하나의 하위 폴더 만 삭제하려는 하위 폴더는 여러 폴더에 표시됩니다.모든 하위 폴더에서 특정 폴더 만 삭제하고 만드는 방법

예를 들어 하나의 상위 폴더 Main source이 있고 Main Source에는 100 개가 넘는 하위 폴더가 있습니다.

각 폴더에는 child_AB, child_BC과 같은 몇 가지 공통 폴더가 있습니다.

배치 파일을 사용하여 "상위"하위 폴더의 모든 하위 폴더를 삭제하고 싶습니다.

어떻게 할 지 말해 줄 수 있습니까? >D:\Main_Source - D 드라이브에 제시


추가 예를

상위 폴더에 있습니다.

Main_Source은 다음 폴더

LDAP_A1 
LDAP_A2 
LDAP_A3 
LDAP_A4 
LDAP_A5 
...... 
...... 
So on... 

각 LDAP 폴더 child_ABchild_CD이 포함되어 있습니다.

각 하위 폴더에서 child_ABchild_CD을 삭제하고 싶습니다.

배치 파일을 사용하여 각각의 모든 하위 폴더에서 child_ABchild_CD을 삭제하는 방법은 무엇입니까?

일괄 파일 코딩을 처음 사용합니다.

+0

질문을 두 번 읽었을 때, 나는 정확히 당신이 원하는 바가 전혀 없습니다. 그것은 for/d/r의 사소한 사용법처럼 들리지만 실제로는 알 수 없습니다. – Joey

답변

0

이 시도 : 루트 폴더에 부모 하위 폴더, 부모의 자식 하위 폴더를 통해 내부 일을 반복을 통해

@ECHO OFF 
SET "rootdir=D:\Main_Source" 
FOR /D %%A IN ("%rootdir%\LDAP_*") DO (
    FOR /D %%B IN ("%%A\*") DO (
    IF "%%~nxB"=="child_AB" ECHO RMDIR /S /Q "%%B" 
    IF "%%~nxB"=="child_CD" ECHO RMDIR /S /Q "%%B" 
) 
) 

외부 루프 반복을.

이 스크립트는 실제로 실행하는 대신 RMDIR 명령의 목록을 표시합니다. 먼저 생성 경로를 확인한 다음 ECHO 키워드 만 제거하고 다시 실행하여 실제 삭제를 진행하십시오.

0

실행 Main_Source 디렉토리에서이 스크립트 :

for /F "delims=" %%a in ('dir /ad /b') do (
    if exist "%%a\child_AB" rd /s /q "%%a\child_AB" 
    if exist "%%a\child_CD" rd /s /q "%%a\child_CD" 
) 

당신은 그것을 디버깅하는 echo 명령을 추가 할 수 있습니다.

관련 문제