rmdir 또는 rd 명령에 와일드 카드 사용 파일 포함)를 삭제하고 싶습니다. 나는이 명령을 시도했다

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”파일에 넣으려면 “%”문자를 두 배로 늘려야합니다.


답변