배치 스크립트를 만들고 있으며 스크립트의 일부가 디렉토리와 모든 하위 디렉토리를 제거하려고합니다. 비어 있지 않은 하위 디렉토리에 대한 간헐적 인 오류가 발생합니다. 색인 생성이 범인이라는 기사를 읽었습니다. WSearch를 비활성화했지만 결국 다시 오류가 발생했습니다. 다음은 명령입니다.
rmdir /S /Q "C:\<dir>\"
답변
나는 Harry Johnston이 언급 한 것과 동일한 문제를 경험했습니다. 당신을 위해 비우기 위해 의도 rmdir /s /q
되었지만 디렉토리가 비어 있지 않다고 불평 /s
합니다! 개인적으로 Windows의 버그라고 생각합니다.
내 해결 방법은 del
디렉토리 자체를 삭제하기 전에 디렉토리의 모든 것입니다.
del /f /s /q mydir 1>nul
rmdir /s /q mydir
( 그렇지 않으면 삭제하는 모든 단일 파일을 나열하기 때문에 1>nul
의 표준 출력을 숨 깁니다 del
.)
답변
이 문제에 대해 잘 알고 있습니다. 가장 간단한 해결 방법은 작업을 조건부로 반복하는 것입니다. 나는 그것이 실제로 열린 파일이나 권한 문제가 아니라면 두 번 연속으로 실패하는 것을 본 적이 없습니다!
rd /s /q c:\deleteme
if exist c:\deleteme rd /s /q c:\deleteme
답변
방금 동일한 문제가 발생했으며 일부 파일이 손실되거나 손상되었습니다. 문제를 해결하려면 디스크 검사를 실행하십시오.
chkdsk /F e:
검색 창 상자 또는 cmd 프롬프트에서 실행할 수 있습니다. 는 /F
이 파일을 복구처럼 찾아 문제를 해결합니다. 이 실행이 완료되면 평소처럼 파일과 폴더를 삭제할 수 있습니다.
답변
관리자로 명령 프롬프트를 입력하고 실행하십시오.
rmdir /s <FOLDER>
답변
비슷한 문제가 발생하여 Windows 탐색기를 통해 빈 폴더를 삭제하려고했습니다. 비어 있지 않은 오류를 표시했기 때문에 admin cmd를 통해 시도했지만 여기에 대한 답변이 도움이되지 않았습니다.
파일을 빈 폴더로 옮긴 후. 비어 있지 않은 폴더를 삭제할 수있었습니다
답변
@gfullam이 @BoffinbraiN의 답변에 대한 주석에서 언급했듯이 <dir>
삭제중인 파일이 파일을 포함하는 파일이 아닐 수 있습니다 <dir>
. “디렉토리가 비어 있지 않습니다.”라는 메시지를받는 하위 디렉토리가있을 수 있으며 유일한 해결책은 다음과 같습니다. 디렉토리를 재귀 적으로 반복하고 포함 된 모든 파일을 수동으로 삭제합니다. 결국 rm
UNIX 의 포트를 사용하기로 결정했습니다 . rm.exe
Git Bash, MinGW, Cygwin, GnuWin32 등이 함께 제공됩니다. PATH에 상위 디렉토리가 있고 UNIX 시스템에서와 같이 실행하기 만하면됩니다.
배치 스크립트 예 :
set PATH=C:\cygwin64\bin;%PATH%
rm -rf "C:\<dir>"
답변
나를 위해 일한 것은 다음과 같습니다. RMDir 명령이 거의 항상 “디렉토리가 비어 있지 않습니다”를 실행하는 것처럼 보입니다.
:Cleanup_Temporary_Files_and_Folders
Erase /F /S /Q C:\MyDir
RMDir /S /Q C:\MyDir
If Exist C:\MyDir GoTo Cleanup_Temporary_Files_and_Folders