Xóa một thư mục và các tệp của nó bằng dòng lệnh nhưng không gặp lỗi nếu nó không tồn tại


83

Tôi cần lệnh Windows để xóa một thư mục và tất cả các tệp chứa nó nhưng tôi không muốn thấy bất kỳ lỗi nào nếu thư mục đó không tồn tại.

Câu trả lời:


80

Chuyển hướng đầu ra của dellệnh thành nul. Lưu ý rằng 2, để chỉ ra lỗi đầu ra nên được chuyển hướng. Xem thêm câu hỏi này , và đặc biệt là tài liệu công nghệ Sử dụng các toán tử chuyển hướng lệnh .

del {whateveroptions} 2>nul

Hoặc bạn có thể kiểm tra sự tồn tại của tệp trước khi gọi del:

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

Lưu ý rằng bạn có thể sử dụng if exist c:\folder\(có dấu \) để kiểm tra xem có phải c:\folderlà thư mục chứ không phải tệp hay không.


Cố gắng này tôi vẫn nhận được "Hệ thống không thể tìm thấy đường dẫn cụ thể"
jaywayco

3
Buộc xóa đệ quy, bỏ qua lỗi:rmdir /s /q some\where\myFolder 2>nul
crushy

@crusy đánh giá cao nhiều, nhưng đó là câu trả lời giống nhau ( rmdir= rd) mà dbenham đã đưa ra chính xác 6 năm trước
GolezTrol

59

Chuyển hướng stderr đến nul

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

Hoặc xác minh rằng thư mục tồn tại trước khi xóa. Lưu ý rằng dấu cuối \là quan trọng trong điều kiện IF.

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

14
@GolezTrol - Cả hai bạn đều không xóa thư mục theo yêu cầu của OP. Cả hai bạn đều tập trung vào việc xóa một tập tin.
dbenham

21

Đối với tôi trên Windows 10, những điều sau đây đang hoạt động rất tốt:

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

qlà viết tắt của "xóa mà không cần hỏi" và slà viết tắt của "xóa tất cả các thư mục con và tệp trong đó".

Và bạn cũng có thể kết hợp lệnh:

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

3

Bạn có thể chuyển hướng stderr đến nul

del filethatdoesntexist.txt 2>nul

1
Bạn đã thử cái này chưa? Điều này không hoạt động. Nếu nó không tồn tại, tôi vẫn thấy lỗi
DGO

1

Ở trên đi kèm với Y hoặc N trong lời nhắc. Vì vậy, tôi đã sử dụng những thứ sau để thay thế và nó hoạt động hoàn hảo.

if exist cddd rmdir cddd

Hy vọng điều này sẽ giúp ai đó.

Chúc mừng.


Để tránh lời nhắc, bạn phải thêm / Q vào lệnh rmdir. Nếu bạn cần phải loại bỏ tất cả các file và thư mục con bạn cũng cần / S . Bạn không thấy lời nhắc có thể vì thư mục không có ở đó.
Bemipefe
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.