내부에 다른 폴더와 파일이 들어있는 하나의 폴더를 삭제해야합니다. 시도 del
하고 rmdir
명령했지만 때로는 일부 오류 줄로 실패합니다.[PATH]: The directory isn't empty.
좋은 대안이 있습니까?
답변
이것은 자동 빌드 스크립트에서 많이 발생합니다.
그 이유는 “공유 삭제”를 사용하여 해당 디렉토리에 파일이 열려있는 일부 응용 프로그램 일 수 있습니다. 즉, 응용 프로그램은 파일 삭제를 허용하지만 (DeleteFile 호출이 실패하지 않는 이유는 해당 응용 프로그램이 핸들을 닫은 후에 만 파일이 사라집니다.
즉, rmdir
명령이 폴더를 삭제하려고 할 때 파일이 여전히있을 수 있으므로 오류 메시지가 표시됩니다. 그 후 곧, 응용 프로그램이 핸들을 닫고 파일이 사라지고 폴더를 검사 할 때 파일을 말하면 rmdir
비어있을 것입니다.
적어도 그것은 내 이론이다.
Harry Johnston이 제안한 해결 방법이 좋습니다. rmdir
명령 사이에 일시 중지 만 삽입 합니다. 물론 Windows에는 쉽게 스크립트 가능한 “일시 정지”명령이 없습니다 (수정 : 고대 Windows 버전은 최신 버전이 아닙니다. 주석 참조). 그러나 초 단위 입도가 충분 ping
하면 일시 중지를 만드는 데 사용할 수 있습니다 .
ping -n {desired_delay_in_seconds + 1} 127.0.0.1 >nul
전체적으로 :
rd /s /q foo
:: retry once
if exist foo (
:: clear errorlevel
cmd /c
:: pause
ping -n 2 127.0.0.1 >nul
:: retry
rd /s /q foo
)
:: retry yet again
if exist foo (
cmd /c
ping -n 2 127.0.0.1 >nul
rd /s /q foo
)
:: give up
if exist foo {panic}
답변
시험:
rmdir /S your_directory
또는:
rmdir /S /Q your_directory
확인 메시지를 건너 뛰려면
답변
읽기 전용 파일이있을 수 있습니다. del / F 옵션을 사용하여 파일을 제거 할 수 있습니다
del /S /F your_directory
rmdir your_directory
숨겨진 파일이있을 수도 있으며 정말로 삭제하려는 경우 다음을 사용 하여이 작업을 수행 할 수 있습니다
del /S /F /AH your_directory
rmdir your_directory
그래도 실패하면 일부 파일을 삭제할 수있는 권한이 없거나 일부 파일이 여전히 사용 중입니다.
답변
Windows 7 (및 다른 버전)에는 때때로이 증상을 일으키는 버그가 있다고 생각합니다. 또는 타사 소프트웨어의 버그 일 수 있습니다. (아마도 Symantec Endpoint Protection을 설치 했습니까?)
어쨌든, 나는 그것을 꽤 자주 가로 질러 갔다. 대부분의 경우이 문제는 rd /s /q
두세 번 연속 으로 실행하면 해결할 수 있습니다 .
이것이 배치 파일에 있으면 다음과 같이 할 수 있습니다.
rd /s /q foo
if exist foo rd /s /q foo
if exist foo rd /s /q foo
if exist foo echo Help! & pause
답변
사용 del
후, 내부의 파일을 rmdir
폴더를 제거 할 수 있습니다.
이 rmdir
방법 을 사용하여 모든 파일을 제거 하려면 디렉토리 이름 앞에/S
스위치 를 사용하고 /Q
삭제 프롬프트를 표시하지 마십시오 . 파일을 놓치지 않기 때문에 이것이 가장 좋은 방법입니다. / Q 스위치는 시스템 또는 숨김 파일 속성에 대해 경고하지 않으므로주의하십시오.
답변
노드 를 사용하는 경우 다음 과 같이 rimraf 종속성을 사용할 수 있습니다 .
설치를 실행하십시오 : npm install rimraf -g
폴더 삭제 : rimraf SourceFolder
이것은 오류가 발생했을 때 도움이되었습니다.
소스 파일 이름이 파일 시스템에서 지원하는 것보다 큽니다.
답변
윈도우 (DOS, 윈도우 95 / 98 / ME)의 이전 버전을 폴더 DELTREE
에 동등 RM
또는 RMDIR
. 나는 DELTREE
Windows 7 워크 스테이션에서 배치 파일로 잘 사용합니다.
Deletes a directory and all the subdirectories and files in it.
To delete one or more files and directories:
DELTREE [/Y] [drive:]path [[drive:]path[...]]
/Y Suppresses prompting to confirm you want to delete
the subdirectory.
[drive:]path Specifies the name of the directory you want to delete.
Note: Use DELTREE cautiously. Every file and subdirectory within the
specified directory will be deleted.