Windows 7의 배치 파일에서 모든 파일과 하위 폴더를 삭제하고 최상위 폴더를 유지하고 싶습니다. 기본적으로 폴더를 비 웁니다. 그에 대한 명령 줄 명령은 무엇입니까?
ntvdm
하지만 64 비트 시스템이 시장 점유율을 확보함에 따라 점점 더 관련이 없어지고 있습니다.
Windows 7의 배치 파일에서 모든 파일과 하위 폴더를 삭제하고 최상위 폴더를 유지하고 싶습니다. 기본적으로 폴더를 비 웁니다. 그에 대한 명령 줄 명령은 무엇입니까?
ntvdm
하지만 64 비트 시스템이 시장 점유율을 확보함에 따라 점점 더 관련이 없어지고 있습니다.
답변:
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 명령은이 디렉토리 자체를 삭제할 수 없습니다.
rmdir
명령은 삭제됩니다New folder
상위 디렉토리로 이동하십시오.
pushd "Parent Directory"
하위 폴더를 삭제하십시오.
rd /s /q . 2>nul
pushd
하지 않은 것을 여기에 추가하지 않습니다 cd
.
rmdir /s path-to-folder
모든 것이 들어있는 폴더를 삭제하지만 asker는 작업 디렉토리에서 모든 것을 삭제하는 방법을 알고 싶었습니다.
rmdir "c:\pathofyourdirectory" /q /s
따옴표를 사용하는 것을 잊지 마십시오. /q /s
따라서 모든 저장소가 프롬프트없이 삭제됩니다.
rmdir을 사용하여 다음과 같이 파일과 하위 폴더를 삭제할 수 있습니다.
rmdir /s/q MyFolderPath
그러나 특히 다음과 같이 rmdir 이전에 del을 사용할 수있는 하위 폴더가 많은 경우 특히 빠릅니다.
del /f/s/q MyFolderPath > nul
rmdir /s/q MyFolderPath
rmdir
명령 (모두 동일) 상위 폴더를 삭제합니다. 이것은 질문에 대한 답변 이 아닙니다 . 사람들은 왜 읽지 않습니까?
모든 하위 폴더를 포함하여 폴더의 모든 파일을 삭제하고 루트 폴더를 그대로 유지하기 위해 일부 오류 조건에 의존하지 않으려면 (다른 대답에서 본 것처럼) 배치 파일을 다음과 같이 만들 수 있습니다.
@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
폴더 이름에 공백이있을 때 나에게 더 효과적이었습니다.
@echo off
REM ---- Batch file to clean out a folder
REM Checking for command line parameter
if "%~1"=="" (
echo Parameter required.
exit /b 1
) else (
echo ***********************************************************************************
echo *** Deleting all files, including the ones in the subdirs, without confirmation ***
del "%~1\*" /S /Q
echo ***********************************************************************************
REM Deleting all the empty subdirs that were left behind
FOR /R "%~1" %%D IN (.) DO (
if "%%D"=="%~1\." (
echo *** Cleaning out folder: %~1 ***
) else (
echo Removed folder "%%D"
rmdir /S /Q "%%D"
)
)
REM All good.
exit /b 0
)
파일을 삭제하려면
del PATH_TO_FILE
모든 파일이 들어있는 폴더를 삭제하려면
rmdir /s /q PATH_TO_FOLDER
폴더 자체를 삭제하지 않고 특정 폴더에서 모든 파일을 삭제하는 것은 약간 복잡합니다. del /s *.*
폴더는 삭제할 수 없지만 모든 하위 폴더에서 파일을 제거합니다. 따라서 두 가지 명령이 필요합니다.
del /q PATH_TO_FOLDER\*.*
for /d %i in (PATH_TO_FOLDER\*.*) do @rmdir /s /q "%i"
다음과 같이 원하는 것을 (폴더 또는 파일) 삭제하는 스크립트를 만들 수 있습니다 mydel.bat
.
@echo off
setlocal enableextensions
if "%~1"=="" (
echo Usage: %0 path
exit /b 1
)
:: check whether it is folder or file
set ISDIR=0
set ATTR=%~a1
set DIRATTR=%ATTR:~0,1%
if /i "%DIRATTR%"=="d" set ISDIR=1
:: Delete folder or file
if %ISDIR%==1 (rmdir /s /q "%~1") else (del "%~1")
exit /b %ERRORLEVEL%
몇 가지 사용 예 :
mydel.bat "path\to\folder with spaces"
mydel.bat path\to\file_or_folder