Windows 7의 배치 파일에서 모든 파일과 하위 폴더를 삭제하고 최상위 폴더를 유지하고 싶습니다. 기본적으로 폴더를 비 웁니다. 그에 대한 명령 줄 명령은 무엇입니까?
답변
del
및 /S
플래그를 사용하여 이를 수행 할 수 있습니다 (모든 서브 디렉토리에서 모든 파일을 제거하도록 지시 함).
del /S C:\Path\to\directory\*
답변
가장 좋은 해결책 : 예를 들어 부모 디렉토리의 모든 파일과 하위 디렉토리를 삭제하고 싶습니다. “C : \ Users \ Desktop \ New folder \”라고 말할 수 있습니다. 쉬운 방법은 세 가지 명령 아래의 배치 파일을 만드는 것입니다.
cd C : \ 사용자 \ 데스크톱 \ 새 폴더 \
델 * / S / Q
rmdir / S / Q “C : \ Users \ Desktop \ New 폴더 \”
먼저 모든 하위 디렉토리의 모든 파일을 정리 한 다음 비어있는 모든 하위 디렉토리를 정리합니다. 현재 작업 디렉토리는 “\ New folder”와 같은 상위 디렉토리이므로 rmdir 명령은이 디렉토리 자체를 삭제할 수 없습니다.
답변
상위 디렉토리로 이동하십시오.
pushd "Parent Directory"
하위 폴더를 삭제하십시오.
rd /s /q . 2>nul
답변
rmdir "c:\pathofyourdirectory" /q /s
따옴표를 사용하는 것을 잊지 마십시오. /q /s
따라서 모든 저장소가 프롬프트없이 삭제됩니다.
답변
rmdir을 사용하여 다음과 같이 파일과 하위 폴더를 삭제할 수 있습니다.
rmdir /s/q MyFolderPath
그러나 특히 다음과 같이 rmdir 이전에 del을 사용할 수있는 하위 폴더가 많은 경우 특히 빠릅니다.
del /f/s/q MyFolderPath > nul
rmdir /s/q MyFolderPath
답변
모든 하위 폴더를 포함하여 폴더의 모든 파일을 삭제하고 루트 폴더를 그대로 유지하기 위해 일부 오류 조건에 의존하지 않으려면 (다른 대답에서 본 것처럼) 배치 파일을 다음과 같이 만들 수 있습니다.
@echo off
REM Checking for command line parameter
if "%~1"=="" (
echo Parameter required.
exit /b 1
) else (
REM Change directory and keep track of the previous one
pushd "%~1"
if errorlevel 1 (
REM The directory passed from command line is not valid, stop here.
exit /b %errorlevel%
) else (
REM First we delete all files, including the ones in the subdirs, without confirmation
del * /S /Q
REM Then we delete all the empty subdirs that were left behind
for /f %%D IN ('dir /b /s /a:d "%~1"') DO rmdir /S /Q "%%D"
REM Change directory back to the previous one
popd
REM All good.
exit /b 0
)
)
그런 다음 간단히 다음과 같이 호출하면됩니다.
empty_my_folder.bat "C:\whatever\is\my folder"
답변
이 세 가지 지침을 박쥐 파일에 넣어서 쉽고 빠르게 수행 할 수 있습니다.
mkdir empty_folder
robocopy /mir empty_folder "path_to_directory"
rmdir empty_folder