[batch-file] 배치 파일. 디렉토리의 모든 파일과 폴더를 삭제

무선 툴킷의 캐시 폴더에있는 모든 폴더와 파일을 삭제하는 배치 파일을 갖고 싶습니다.

현재 다음과 같은 것들이 있습니다 :

cd "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS"
del *.db

그러면 RMS 디렉토리의 모든 .db 파일이 삭제 되지만이 디렉토리에서 모든 항목을 삭제하고 싶습니다. 어떻게해야합니까?



답변

del *.*대신에 del *.db. 모든 것을 제거합니다.


답변

사용하다:

  • 배치 파일 만들기

  • 아래 텍스트를 배치 파일에 복사하십시오.

    set folder="C:\test"
    cd /d %folder%
    for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)
    

모든 파일 폴더 가 삭제됩니다 .


답변

IF EXIST "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS" (
    rmdir "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS" /s /q
)

폴더 (및 폴더 자체)에서 모든 항목이 삭제됩니다.


답변

del *.*파일 만 삭제하지만 하위 디렉토리는 삭제하지 않습니다. 디렉토리의 내용을 압축하기 위해이 스크립트를 사용할 수 있습니다.

@echo off
setlocal enableextensions
if {%1}=={} goto :HELP
if {%1}=={/?} goto :HELP
goto :START

:HELP
echo Usage: %~n0 directory-name
echo.
echo Empties the contents of the specified directory,
echo WITHOUT CONFIRMATION. USE EXTREME CAUTION!
goto :DONE

:START
pushd %1 || goto :DONE
rd /q /s . 2> NUL
popd

:DONE
endlocal

pushd디렉토리에 변경이있는 당신은 아이들을 삭제할. 그런 다음 rd현재 디렉토리와 모든 서브 디렉토리를 삭제하도록 요청하면 서브 디렉토리의 삭제는 성공하지만 현재 디렉토리의 삭제는 실패합니다. 2> NUL삼키는 오류가 발생 합니다. (2는 오류 스트림입니다).


답변

morty346이 게시 한 내용과 함께 이것을 정리했습니다.

set folder="C:\test"
IF EXIST "%folder%" (
    cd /d %folder%
    for /F "delims=" %%i in ('dir /b') do (rmdir "%%i" /s/q || del "%%i" /s/q)
)

변수에 정의 된 폴더가 먼저 존재하는지 빠른 확인을 추가하고 디렉토리를 폴더로 변경 한 후 내용을 삭제합니다.


답변

del/S플래그를 사용하여 이를 수행 할 수 있습니다 (모든 서브 디렉토리에서 모든 파일을 반복하도록 지시 함).

del /S C:\Path\to\directory\*

RD의 명령도 사용할 수 있습니다. 프롬프트없이 자동으로 재귀 적으로 삭제 :

@RD /S /Q %VAR_PATH%

Rmdir (rd)


답변

set "DIR_TO_DELETE=your_path_to_the_folder"

IF EXIST %DIR_TO_DELETE% (
    FOR /D %%p IN ("%DIR_TO_DELETE%\*.*") DO rmdir "%%p" /S /Q
    del %DIR_TO_DELETE%\*.* /F /Q
)