배치 파일을 통해 Windows 7에서 지정된 폴더의 전체 내용을 삭제하고 싶습니다. 내 문제는 ‘del’또는 ‘erase’는 폴더가 아닌 파일 만 삭제하고 ‘rmdir’또는 ‘rd’는 항상 내용이있는 지정된 폴더를 삭제하지만 폴더 자체가 아닌 내용 만 삭제하고 싶습니다. . rmdir /S /Q "C:\Share\*"
구문 오류가 발생한 ‘ ‘ 명령을 시도했습니다 .
이를 수행하는 올바른 방법은 무엇입니까?
Windows 7 Professional 64 비트에서 작업 중이며 관리자 권한이 있습니다.
답변
배치 파일은 두 개의 명령을 실행해야합니다. 하나는 파일을 지우고 다른 하나는 하위 디렉토리를 제거합니다. 제거하려는 디렉토리가 있다고 가정했습니다.C:\Share\
배치 파일은 다음과 같아야합니다.
del /s /f /q c:\share\*.*
for /f %%f in ('dir /ad /b c:\share\') do rd /s /q c:\share\%%f
del /s /f /q
확인 메시지를 표시하지 않고 모든 파일 (읽기 전용 파일)을 삭제하는 디렉토리 트리를 재귀 적으로 검색합니다.
두 번째 줄은 모든 하위 디렉토리 (이제 비어 있어야 함)를 반복하여 제거합니다.
전체 폴더를 삭제하고 다시 만드는 것 (권한으로 인해 원하지 않는 것 같습니까?)이 폴더를 정리하는 가장 쉬운 방법입니다.
답변
rmdir /s/q C:\Share
rmdir
와일드 카드가 아닌 전체 이름 만 허용 하므로 “구문 오류”가 발생 합니다. ( cmd.exe
에서 와일드 카드 확장은 개별 프로그램에 맡겨져 있지만 모두는 아닙니다.)
로 시작하는 디렉토리가 많은 경우 루프를 Share...
사용하십시오 for
.
for /d %f in (C:\Share*) do rmdir /s/q "%f"
답변
명령 프롬프트에서 다음을 시도하십시오.
rd /s/q "C:\Share"
답변
이건 어떤가요 ?
rmdir /S /Q "target"
mkdir "target
편집 : 물론이 솔루션은 일시적인 폴더 부재를 견딜 수있는 경우에만 적용됩니다.
답변
for /f "delims=" %%f in ('dir /ad /b c:\share\') do rd /s /q c:\share\%%f
하위 디렉토리에 공백이 포함 된 다른 디렉토리가 포함 된 경우에는 작동하지 않습니다.
이 작업을 수행하려면 다음과 같이 최종 문자열을 인용해야했습니다.
/ f "delims ="%% f ( 'dir / ad / bc : \ share \')의 경우 rd / s / q "c : \ share \ %% f"
분명히 이것은 명령 자체가 문자열 자체 대신 인용 된 문자열에서 작동하게합니다.
답변
모든 하위 폴더를 삭제해야하지만 루트 (및 루트의 파일)는 그대로 남아있는 폴더 에서이 작업을 시도합니다.
/ D는 디렉토리와 일치하고 rd / s / q는 한 번에 하나씩 삭제합니다.
답변
간단히:
rmdir / s / q “경로”
mkdir “경로”