명령 프롬프트를 통해 지정된 폴더의 모든 파일 / 하위 폴더를 어떻게 삭제합니까? 최상위 폴더를 유지하고

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