programing

디렉토리의 모든 파일 및 폴더 삭제

bestprogram 2023. 4. 17. 22:34

디렉토리의 모든 파일 및 폴더 삭제

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

현재 다음을 가지고 있습니다.

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

그러면 RMS 디렉토리에 있는 모든 .db 파일이 삭제되지만 이 디렉토리에서 모든 파일을 삭제합니다.이거 어떻게 해?

용도:

  • 배치 파일 생성

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

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

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

del *.*대신del *.db그러면 모든 것이 제거됩니다.

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

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

방금 346이 올린 글에서 정리한 건데

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 *.*는 파일만 삭제하고 하위 디렉토리는 삭제하지 않습니다.디렉토리의 내용을 축소하려면 , 다음의 스크립트를 사용할 수 있습니다.

@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는 에러 스트림).

다음을 사용하여 이 작업을 수행할 수 있습니다.del및 그/Sflag(모든 서브 디렉토리에서 모든 파일을 다시 검색하도록 지시):

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
)

사용하다

set dir="Your Folder Path Here"
rmdir /s %dir%
mkdir %dir%

이 버전은 다음 사항을 묻지 않고 삭제합니다.

set dir="Your Folder Here"
rmdir /s /q %dir%
mkdir %dir%

예:

set dir="C:\foo1\foo\foo\foo3"
rmdir /s /q %dir%
mkdir %dir%

이것으로 해결됩니다.C:\foo1\foo\foo\foo3.

(나는 압둘라 사부인의 답변을 언급하고 싶다.내가 그를 따라하는 것에 대해 혼동이 있었다.나는 그의 투고를 알아차리지 못했다.melpomene이 오류를 지적해 주셔서 감사합니다!)

다음을 시도해 보세요. 저는 좋아요.

"C:\tmp" 폴더에 데이터를 덤프하는 어플리케이션이 있는데, 다음 어플리케이션이 가장 적합합니다.데이터를 삭제하기 위해 예, 아니오묻지 않습니다.5분마다 실행되도록 일정을 잡았다.

cd "C:\tmp"

del *.* /Q

더 좋은 것은, 예를 들어, 아래 있는 모든 것을 제거하고 싶다고 가정해 봅시다.C:\windows\temp폴더입니다.

@echo off
rd C:\windows\temp /s /q

로보카피를 사용하여 빈 폴더를 지울 폴더에 미러링할 수 있습니다.

robocopy "C:\temp\empty" "C:\temp\target" /E /MIR

실제 폴더를 제거하거나 다시 만들 수 없는 경우에도 작동합니다.

기존의 빈 디렉토리가 필요합니다.

클리어디르 같은 간단한 도구를 사용하는 것이 좋습니다.따라서 배치 파일에 다음과 같이 쓸 수 있습니다.

cleardir path/to/dir

빈 디렉토리가 .dir느리지만, "를 조금 느리지만, 여전히 "문제"를 해결합니다.

저는 이 툴의 저자 =)

가장 쉬운 방법은 다음과 같습니다.

  1. *.txt 파일 생성
  2. 쓰기: rmdir /q /s . dir
  3. 파일을 클리어하는 폴더에 *.bat로 저장합니다(NUKE.bat 파일을 호출할 수 있습니다).
  4. 켜다

경고!

확인 요청 없이 폴더 내의 모든 항목이 삭제됩니다!!!

현명한 절약 장소를 선택하세요.

간단한 답변:

C:
del /S /Q C:\folderName\otherFolderName\*

C:D:에서 C: 또는 C:에서 D:(또는 다른 것)로 전환해야 하는 경우 중요

/S되었습니다.

/Q그런 않아요.

차 조심해, 이건 너무 심해.

중 하나로 할 수는 .rmdir ★★★★★★★★★★★★★★★★★」del 삭제:

  • rmdir /s /q에서는 와일드카드 파라미터를 사용할 수 없습니다. ★★★★★★★★★★★★★★★★★.rmdir /s /q *에러가 발생합니다.
  • del /s /f /q모든 파일은 삭제되지만 빈 하위 디렉토리는 유지됩니다.

제가 선호하는 솔루션은 (다른 많은 배치 파일에서 사용한 것과 같이) 다음과 같습니다.

rmdir /s /q . 2>NUL

GregM 답변의 수정 버전입니다.

set folder="C:\test"
cd /D %folder%
if NOT %errorlevel% == 0 (exit /b 1)
echo Entire content of %cd% will be deleted. Press Ctrl-C to abort
pause

REM First the directories /ad option of dir
for /F "delims=" %%i in ('dir /b /ad') do (echo rmdir "%%i" /s/q)

REM Now the files /a-d option of dir
for /F "delims=" %%i in ('dir /b /a-d') do (echo del "%%i" /q)

REM To deactivate simulation mode remove the word 'echo' before 'rmdir' and 'del'.
@echo off
@color 0A

echo Deleting logs

rmdir /S/Q c:\log\

ping 1.1.1.1 -n 5 -w 1000 > nul

echo Adding log folder back

md c:\log\

당신은 올바른 길을 가고 있었어요.삭제한 폴더를 다시 추가하려면 코드를 추가하세요.

언급URL : https://stackoverflow.com/questions/6836566/delete-all-files-and-folders-in-a-directory