디렉토리의 모든 파일 및 폴더 삭제
무선 툴킷의 캐시 폴더에 있는 모든 폴더와 파일을 삭제하는 배치 파일을 원합니다.
현재 다음을 가지고 있습니다.
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%
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느리지만, "를 조금 느리지만, 여전히 "문제"를 해결합니다.
저는 이 툴의 저자 =)
가장 쉬운 방법은 다음과 같습니다.
- *.txt 파일 생성
- 쓰기: rmdir /q /s . dir
- 파일을 클리어하는 폴더에 *.bat로 저장합니다(NUKE.bat 파일을 호출할 수 있습니다).
- 켜다
경고!
확인 요청 없이 폴더 내의 모든 항목이 삭제됩니다!!!
현명한 절약 장소를 선택하세요.
간단한 답변:
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
'programing' 카테고리의 다른 글
| VBA 참조 카운트 - 객체 파괴 (0) | 2023.04.17 |
|---|---|
| Excel through vba에서 행 전체가 공백인지 확인하는 방법 (0) | 2023.04.17 |
| 리모트 브랜치가 삭제된 오리진에서 가져오시겠습니까? (0) | 2023.04.17 |
| Bash 스크립트의 인스턴스가 1개만 실행되도록 하는 가장 좋은 방법은 무엇입니까? (0) | 2023.04.17 |
| SQL Server 문자열에서 모든 공간 제거 (0) | 2023.04.17 |