D:
드라이브에 폴더가 있다고 가정 해 봅시다 .
D:\Air
D:\Abonden
D:\All
D:\Whatever
“A”로 시작하는 모든 폴더 (모든 하위 폴더 및 파일 포함)를 삭제하고 싶습니다. 나는이 명령을 시도했다 :
rmdir D:\A* /s /q
그래도 오류가 발생합니다 🙁
파일 이름, 디렉토리 이름 또는 볼륨 레이블 구문이 올바르지 않습니다.
이 del
명령은에서 작동 *
하지만 폴더도 삭제해야합니다. 명령
을 통해 그것을 달성 할 수있는 방법이 rmdir
있습니까?
답변
cd c:\temp
for /f %i in ('dir /a:d /s /b A*') do rd /s /q %i
그래도 이것을 사용하여 테스트하십시오.
for /f %i in ('dir /a:d /s /b A*') do echo rd /s /q %i
그러면 명령 프롬프트에 실행될 명령이 파이프되고 진행 상황을 확인할 수 있습니다.
“C : \ temp \ jjj \ aaa”와 같은 하위 폴더도 검색하고 aaa 폴더를 삭제합니다. 최상위 폴더 “C : \ temp \ aaa”만 보려면 "/s"
명령에서 를 제거하십시오 .
이것의 핵심은 검색 문자열에 넣을 A *입니다. 이 같은 와일드 카드 등 받아 들일 것 aaa*
, aaa*
그리고 *aaa*
당신이 그것을 원하는 경우.
답변
와일드 카드를 사용하여 폴더 삭제
rmdir
/ rd
명령은 혼자가 지원하지 않는 와일드 카드 문자 (즉, *
및 ?
). 이 제한을 for
루프 로 감싸서 해결할 수 있습니다 .
사용법 예
for /d %G in ("X:\A*") do rd /s /q "%~G"
참고 파일과 폴더를 삭제하면서 rd
명령을 echo
먼저 대체 할 수 있습니다 . 이렇게하면 실제로 삭제해서는 안되는 것을 보장 할 수 있습니다.
여러 패턴
다른 패턴과 일치하는 여러 폴더를 삭제하기 위해 구문이 다르지 않습니다. @dbenham이 올바르게 지적했듯이 한 줄 명령으로 충분합니다. 다른 경로를 지정할 수도 있습니다.
for /d %G in ("X:\A*","Y:\Whatever\B*","Z:\C?D") do rd /s /q "%~G"
보너스-폴더 존재 확인
특정 폴더가 있는지 확인하려는 경우 다음 명령을 사용할 수 있습니다.
dir /b /a:d "X:\A*" >nul 2>&1 && echo Folders exist. || echo No folders found.
추가 자료
답변
아직 아무도 OP에 파일에 대해 말하지 않았습니까?!
forfiles /P D:\ /M A* /C "cmd /c if @isdir==TRUE rmdir /s /q @file"
/ P는 경로 이름-검색이 시작되는 위치 / M은 A로 시작하는 파일을 찾는 검색 마스크입니다. / C는 실행할 명령입니다 / S는 재귀 하위 폴더입니다 (op는 요청하지 않았으므로 여기에 포함되지 않았습니다).
답변
adn31415 답변은 정확하지만 배치 또는 cmd 스크립트에 넣으면 중단됩니다. 나는 이것이 당신이 그것을 어떻게 사용하는지 알아낼 때까지 몇 시간 동안 머리를 두 드렸습니다.
DOS 명령 창에서 :
for /d %G in ("X:\A*") do rd /s /q "%~G"
배치 또는 cmd 스크립트에서 :
for /d %%G in ("X:\A*") do rd /s /q "%%~G"
“.bat”또는 “.cmd”파일에 넣으려면 “%”문자를 두 배로 늘려야합니다.