명령 줄을 사용하여 디렉토리와 파일을 삭제하지만 존재하지 않는 경우 오류가 발생하지 않습니다.


86

디렉터리 및 포함 된 모든 파일을 삭제하려면 Windows 명령이 필요하지만 디렉터리가 존재하지 않는 경우 오류를보고 싶지 않습니다.

답변:


84

del명령 출력 을 nul로 리디렉션합니다 . 를 참고 2오류 출력을 리디렉션 할 나타냅니다. 이 질문 , 특히 명령 리디렉션 연산자 사용 기술 문서를 참조하십시오 .

del {whateveroptions} 2>nul

또는 다음을 호출하기 전에 파일 존재를 확인할 수 있습니다 del.

if exist c:\folder\file del c:\folder\file

파일이 아닌 폴더 인지 확인하기 위해 if exist c:\folder\(뒤에 \)를 사용할 수 있습니다 c:\folder.


이 시도 난 여전히 얻을 "경로를 찾을 수 없습니다 지정"
jaywayco

3
강제 재귀 삭제, 오류 무시 :rmdir /s /q some\where\myFolder 2>nul
crusy

@crusy 많은 감사,하지만 같은 대답입니다 ( rmdir= rd이미 정확하게 준 dbenham) 육년
GolezTrol

60

stderr을 nul로 리디렉션하십시오.

rd /q /s "c:\yourFolder" 2>nul

또는 삭제하기 전에 폴더가 있는지 확인하십시오. 후행 \은 IF 조건에서 중요합니다.

if exist "c:\yourFolder\" rd /q /s "c:\yourFolder"

14
@GolezTrol-OP의 요청에 따라 폴더를 삭제하지 않았습니다. 둘 다 파일 삭제에 집중했습니다.
dbenham

22

Windows 10에서 다음은 훌륭하게 작동합니다.

if exist <path> rmdir <path> /q /s

q"요청하지 않고 삭제"를 s의미하고 "그 안에있는 모든 하위 폴더 및 파일 삭제 "를 의미합니다.

명령을 연결할 수도 있습니다.

(if exist <path> rmdir <path> /q /s) && <some other command that executes after deleting>

3

stderr을 nul로 리디렉션 할 수 있습니다.

del filethatdoesntexist.txt 2>nul

1
이거 해봤 어? 이것은 작동하지 않습니다. 존재하지 않는 경우에도 오류가 표시됩니다
dgo

0

위의 내용은 프롬프트에서 Y 또는 N으로 표시됩니다. 그래서 대신 다음을 사용했는데 완벽하게 작동합니다.

if exist cddd rmdir cddd

이것이 누군가를 돕기를 바랍니다.

건배.


프롬프트를 피하려면 rmdir 명령에 / Q 를 추가해야합니다 . 모든 파일과 하위 디렉터리를 제거해야하는 경우 / S 도 필요합니다 . 디렉토리가 없기 때문에 프롬프트가 표시되지 않았습니다.
Bemipefe
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.