저는 Windows를 사용합니다.
시스템 호출로 폴더의 모든 파일과 폴더를 삭제하고 싶습니다.
다음과 같이 전화 할 수 있습니다.
>rd /s /q c:\destination
>md c:\destination
더 쉬운 방법을 알고 있습니까?
저는 Windows를 사용합니다.
시스템 호출로 폴더의 모든 파일과 폴더를 삭제하고 싶습니다.
다음과 같이 전화 할 수 있습니다.
>rd /s /q c:\destination
>md c:\destination
더 쉬운 방법을 알고 있습니까?
답변:
아니, 모르겠어.
어떤 이유로 (ACL, & c.) 원래 디렉토리를 유지하고 대신 실제로 비우고 싶은 경우 다음을 수행 할 수 있습니다.
del /q destination\*
for /d %x in (destination\*) do @rd /s /q "%x"
이것은 먼저 디렉토리에서 모든 파일을 제거한 다음 중첩 된 모든 디렉토리를 반복적으로 제거하지만 전체적으로 최상위 디렉토리를 그대로 유지합니다 (내용 제외).
배치 파일 %
내에서 for
루프 내에서 두 배가 필요합니다 .
del /q destination\*
for /d %%x in (destination\*) do @rd /s /q "%%x"
destination
필요한 경우 전체를 따옴표로 묶어 경로로 단어 를 바꿉니다.
del c:\destination\*.* /s /q
나를 위해 일했습니다. 나는 그것이 당신에게도 효과가 있기를 바랍니다.
del *.*
del "../../server/front-end\*.*"
가장 쉬운 방법은 다음과 같습니다.
rmdir /s /q "C:\FolderToNotToDelete\"
경로의 마지막 "\"는 중요한 부분입니다.
mkdir C:\FolderToNotToDelete
충분했습니다 :)
예! Powershell 사용 :
powershell -Command "Remove-Item 'c:\destination\*' -Recurse -Force"
파일을 삭제하려면 :
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
간단한 한 줄 옵션은 파일 시스템 어딘가에 빈 디렉터리를 만든 다음 스위치 와 함께 ROBOCOPY
( http://technet.microsoft.com/en-us/library/cc733145.aspx )를 사용하여 /MIR
모든 파일을 제거하고 하위 폴더. 기본적으로 robocopy는 보안을 복사하지 않으므로 루트 폴더의 ACL은 그대로 유지되어야합니다.
또한 /r
기본 재시도 횟수가 1 백만이므로 재시도 스위치의 값을 설정하려고 할 수도 있습니다.
robocopy "C:\DoNotDelete_UsedByScripts\EmptyFolder" "c:\temp\MyDirectoryToEmpty" /MIR /r:3
상위 디렉토리로 이동
하위 폴더 삭제
/superuser/173859/how-can-i-delete-all-files-subfolders-in-a-given-folder-via-the-command-prompt
pushd
합니다 popd
. 불행히도 popd
디렉토리를 삭제하면 작동하지 않습니다. 따라서 cd
대신 해야 합니다 pushd
.
이것을 시도하면 루트 디렉토리 아래의 모든 MyFolder를 검색하고 MyFolder라는 모든 폴더를 삭제합니다.
for /d /r "C:\Users\test" %%a in (MyFolder\) do if exist "%%a" rmdir /s /q "%%a"