폴더와 하위 폴더를 재귀 적으로 삭제하는 방법이 필요합니다.
이를 위해 사전 구축 된 도구가 있습니까, 아니면 작성해야합니까?
DEL /S
디렉토리를 삭제하지 않습니다.
DELTREE
Windows 2000 이상에서 제거되었습니다
format c:
Linux를 설치 하지 않습니까? 물론 농담입니다.
폴더와 하위 폴더를 재귀 적으로 삭제하는 방법이 필요합니다.
이를 위해 사전 구축 된 도구가 있습니까, 아니면 작성해야합니까?
DEL /S
디렉토리를 삭제하지 않습니다.
DELTREE
Windows 2000 이상에서 제거되었습니다
format c:
Linux를 설치 하지 않습니까? 물론 농담입니다.
답변:
기본 명령 프롬프트 (cmd.exe)를 사용하는 경우 RMDIR 또는 RD :
rd /s /q "path"
RMDIR [/ S] [/ Q] [드라이브 :] 경로
RD [/ S] [/ Q] [드라이브 :] 경로
/ S 디렉토리 자체뿐만 아니라 지정된 디렉토리의 모든 디렉토리와 파일을 제거합니다. 디렉토리 트리를 제거하는 데 사용됩니다.
/ Q 자동 모드, / S를 사용하여 디렉토리 트리를 제거 할 것인지 묻지 마십시오.
당신이 PowerShell을 사용하는 경우 사용할 수 있습니다 Remove-Item
(별명되는 del
, erase
, rd
, ri
, rm
와 rmdir
)과 소요 -Recurse
단락 될 수 인수-r
rd -r "path"
rd /s /q foo && echo "yay"
디렉토리 "foo"가 존재하지 않으면 실패합니다.
Access is denied
오고 다른 파일은 가져옵니다 The process cannot access the file because it is being used by another process
.
관리자:
takeown /r /f folder
cacls folder /c /G "ADMINNAME":F /T
rmdir /s folder
sys 파일을 포함하여 무엇이든 작동
편집 : 실제로 파일 경로가 너무 긴 문제를 해결하는 가장 좋은 방법을 찾았습니다.
mkdir \empty
robocopy /mir \empty folder
robocopy /mir c:\empty .
takeown
내가 실수로 rsync를 리눅스 시스템에서 폴더를 복사 내가 그 폴더를 제거 할 권한이 없었다 나를 도와 ...조차 ROBOCOPY 일했다. 감사합니다
RMDIR [/S] [/Q] [drive:]path
RD [/S] [/Q] [drive:]path
/S
디렉토리 자체 외에 지정된 디렉토리의 모든 디렉토리 및 파일을 제거합니다. 디렉토리 트리를 제거하는 데 사용됩니다.
/Q
자동 모드, 디렉토리 트리를 제거해도 괜찮은지 묻지 마십시오. /S
경로로 이동하여이 명령을 트리거하십시오.
rd /s /q "FOLDER_NAME"
/ s : 지정된 디렉토리와 파일을 포함한 모든 하위 디렉토리를 제거합니다. / s를 사용하여 나무를 제거하십시오.
/ q : rmdir을 자동 모드로 실행합니다. 확인없이 디렉토리를 삭제합니다.
/? : 명령 프롬프트에 도움말을 표시합니다.
대답은 훌륭하지만 Node가 설치되어 있다고 가정하면 노드 라이브러리 "rimraf"를 사용하여이 패턴을 훨씬 더 정확하게 수행 할 수 있습니다. 이것을 많이 사용하는 경우 (내가 할 수 있음) 전역으로 설치하십시오.
yarn global add rimraf
예를 들어 끊임없이 사용하는 패턴은 다음과 같습니다.
rimraf .\**\node_modules
또는 전체 설치를 피할 수 있지만 패키지 동적 다운로드에는 약간 더 오래 걸리는 단일 라이너의 경우 :
npx rimraf .\**\node_modules
이 명령을 시도하십시오 :
del /s foldername
먼저 무엇을하는지 검토해 봅시다 rm -rf
.
C:\Users\ohnob\things>touch stuff.txt
C:\Users\ohnob\things>rm -rf stuff.txt
C:\Users\ohnob\things>mkdir stuff.txt
C:\Users\ohnob\things>rm -rf stuff.txt
C:\Users\ohnob\things>ls -l
total 0
C:\Users\ohnob\things>rm -rf stuff.txt
rm -rf
돌아올 것으로 예상되는 곳에 일반적으로 사용되는 세 가지 시나리오가 있습니다 0
.
나는 전체 권한을 무시할 것입니다. 그러나 아무도 권한을 사용하거나 Windows의 사물에 대한 쓰기 액세스를 거부하려고 시도하지 않습니다 (좋아요.
먼저 0으로 설정ERRORLEVEL
한 다음 경로인지 여부에 따라 다른 명령을 사용하여 경로가 존재하는 경우에만 경로를 삭제하십시오. IF EXIST
설정하지 않는 ERRORLEVEL
경로가 존재하지 않는 경우이므로 설정, 0 ERRORLEVEL
0 처음 제대로하는 방법 모방 정상에서 성공을 검출 할 필요가 rm -rf
사용. 와 달리과 ( RD
과 IF EXIST
)를 보호해야합니다. 와 RD
달리 rm -f
대상이 없으면 오류가 발생합니다.
다음 스크립트 스 니펫은 DELPATH가 미리 인용되어 있다고 가정합니다. (이것은 당신이 같은 것을 할 때 안전합니다SET DELPATH=%1
. 퍼팅 시도 ECHO %1
A의 .cmd
그것에게 그것에 공백이 인수를 전달하고 자신을 위해 무슨 일 참조). 스 니펫이 완료되면로 오류를 확인할 수 있습니다 IF ERRORLEVEL 1
.
: # Determine whether we need to invoke DEL or RD or do nothing.
SET DELPATH_DELMETHOD=RD
PUSHD %DELPATH% 2>NUL
IF ERRORLEVEL 1 (SET DELPATH_DELMETHOD=DEL) ELSE (POPD)
IF NOT EXIST %DELPATH% SET DELPATH_DELMETHOD=NOOP
: # Reset ERRORLEVEL so that the last command which
: # otherwise set it does not cause us to falsely detect
: # failure.
CMD /C EXIT 0
IF %DELPATH_DELMETHOD%==DEL DEL /Q %DELPATH%
IF %DELPATH_DELMETHOD%==RD RD /S /Q %DELPATH%
요점은 환경이 POSIX를 준수 할 때 모든 것이 더 간단하다는 것입니다. 또는 최소한의 MSYS를 설치하고 사용하면됩니다.
Powershell을 통해
Remove-Item -Recurse -Force "TestDirectory"
명령 프롬프트를 통해
여기 당신이해야 할 일이 있습니다 ...
다음 줄을 사용하여 배치 파일을 만듭니다.
RMDIR /S %1
배치 파일을 다른 이름으로 저장 Remove.bat
하고 넣습니다.C:\windows
다음 레지스트리 키를 만듭니다.
HKEY_CLASSES_ROOT\Directory\shell\Remove Directory (RMDIR)
다음 값 regedit
으로 기본값을 시작 하고 업데이트하십시오.HKEY_CLASSES_ROOT\Directory\shell\Remove Directory (RMDIR)\default
"c:\windows\REMOVE.bat" "%1"
그게 다야! 이제 디렉토리를 마우스 오른쪽 버튼으로 클릭하고 RMDIR 기능을 사용할 수 있습니다
자신의 책임하에 사용하십시오. '있는 그대로'제공되는 정보. 광범위하게 테스트되지 않았습니다.
Windows 아이콘 (일반적으로 왼쪽 아래)을 마우스 오른쪽 단추로 클릭하고 "Windows PowerShell (관리자)"를 클릭 한 다음이 명령을 사용하십시오 (주의를 기울이지 않으면 조심스럽게 모든 파일을 쉽게 삭제할 수 있습니다).
rd -r -include *.* -force somedir
somedir
비어 있지 않은 디렉토리는 어디 에서 제거 할 것입니까?
연결된 외부 디스크 나 문제가있는 디스크의 경우 Windows에서 이상한 동작을하는 경우가 있습니다. 삭제 (또는 복사 시도)에서 오류가 발생하지 않지만 지침에 따라 디렉토리가 삭제 (또는 복사)되지 않습니다. (이 경우 적어도 나에게 @n_y가 대답으로 제공 한 명령은 'get-childitem : 파일 또는 디렉토리가 손상되어 읽을 수 없습니다.'와 같은 오류가 발생한다는 것을 알았습니다.
Windows 시스템에 npm 패키지를 설치하는 데 문제가 있고 " rm -rf...
"명령을 찾을 수 없다는 오류가 표시되는 경우 누구에게나 중요한 답변 입니다 . bash cli 를 사용하여 Windows에서 rm 명령을 실행할 수 있습니다 .
npm 사용자의 npm config set script-shell "C:\Program Files\Git\bin\bash.exe"
경우, 설치하려는 npm 패키지에 명령 을 사용하는 설치 후 스크립트 가 있는 경우 npm 패키지의 설정을 변경하거나 비활성화하지 않고도 rm -rf
해당 rm
명령 을 실행할 수 있습니다. 설치 후 스크립트 구성. 예를 들어, 설치 후 스크립트에서 명령을 styled-components
사용합니다.rm
그냥 사용하려는 경우 rm
명령을, 당신은 쉽게 배쉬를 사용하고 인수를 전달할 수 있습니다.
따라서 Windows에서 'rm'명령을 사용할 수 있습니다.
여기 나를 위해 일한 것이 있습니다 :
경로의 길이를 줄이십시오. 즉 : 그러한 파일로 연결되는 모든 폴더의 이름을 가능한 가장 작은 이름으로 바꿉니다. 한 글자의 이름을 말하십시오. 폴더 계층에서 위쪽으로 이름을 바꾸십시오. 이를 통해 경로 길이를 효과적으로 줄입니다. 이제 파일을 바로 삭제하십시오.
이전 버전의 Windows를 사용하는 경우 델 트리도 있습니다.
SS64 : Del-Delete Files 명령을 찾기 위해이 사이트를 정말 좋아합니다.