2017-05-09 6 views
1

Windows에서 배치 파일을 사용하여 특정 문자열이 포함 된 디렉토리를 삭제하는 방법은 무엇입니까?

How to delete files containing certain string using batch file in Windows?

에서 나는 대량 특정 문자열을 포함하는 파일을 삭제하는 방법을 배웠습니다. 내가 한 일은

del *(2)* /f /s 

입니다. 그러나 이것은 디렉토리를 삭제하지 않았습니다. 파일 만 삭제합니다.

특정 문자열이 들어있는 디렉토리를 대량으로 삭제할 수 있습니까?

답변

0

동일한 레벨의 파일 및 디렉토리를 삭제하는 표준 Windows 명령은 없습니다. 파일에 DEL이 사용되면 RMDIR/RD이 디렉토리로 사용됩니다 (그러나 디렉토리 내에 있습니다).

RMDIR/RD은 와일드 카드와 호환되지 않으므로 FOR 루프를 사용해야합니다. 그대로, 아래 코드는 귀하의 질문에있는 디렉토리를 삭제 commandos를 인쇄합니다. 삭제가 원하는대로 처리 될 것이라고 확신하면 ECHO을 삭제하십시오.

@ECHO OFF 
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S "*(2)*"') DO (
    ECHO RMDIR /S /Q "%%G" 
) 
또한 ... 한 - 라이너이를 줄일 수 있습니다

FOR /F "tokens=*" %%G IN ('DIR /B /AD /S "*(2)*"') DO ECHO RMDIR /S /Q "%%G" 
... 그리고 당신이 쉘에서 직접 실행하려는 경우 (A .bat 파일에서 반대) 수행 :

FOR /F "tokens=*" %G IN ('DIR /B /AD /S "*(2)*"') DO ECHO RMDIR /S /Q "%G" 

플래그 설명 :

  • FOR
    • /F : (이 FOR 작동 있도록 필요) 베어 형식
    • /AD : 디렉토리
    • 에 대한 필터
    • /S 파일 세트
  • DIR
    • /B 반복 : 재귀적인 작업
    • RMDIR는 : 작동 재귀
    • /Q : 자동 모드