Câu trả lời:
Bạn có thể sử dụng các lệnh forvà ifđể thực hiện điều này:
for %i in (*) do if not "%~i" == a.c del "%~i"
Điều này đi qua thư mục hiện tại và so sánh từng tên tệp với ac Nếu không khớp, tệp sẽ bị xóa.
forthường xuyên, bạn đưa ra tất cả các loại kịch bản điên rồ cho nó. :)
del "%i"
IFcâu lệnh không phân biệt chữ hoa chữ thường, hãy đổi nó thành IF /I.
Bạn có thể đặt tệp chỉ đọc trước khi xóa mọi thứ
attrib +r a.c
del *.*
attrib -r a.c
Không, không có. Tôi sẽ tạo một thư mục, sao chép tập tin quan trọng vào đó, xóa đi . và di chuyển tệp trở lại. Sau đó xóa tệp tạm thời.
mkdir temp
move a.c temp
erase *.*
move temp\* .
rmdir temp
FOR %f IN (*.*) DO IF NOT [%f]==[a.c] DEL /Q %f
%fcó thể có khoảng trắng trong tên tệp.
FOR /F "tokens=1-4" %%a in ('dir /a:-d /b /s %app_path%^|find /v "%file%"') DO Del /q %%a %%b %%c %%d
%app_path%và %file%là gốc của cây để duyệt, và tệp để tránh xóa, tương ứng. Cái gì là ^và tại sao chúng ta chuyển bốn mã thông báo cho mỗi tệp cho Dellệnh?
Đối với tốc độ, tôi sử dụng delen :
delen /! a.c
TCC / LE cũng có mộtdellệnhmạnh mẽ hơn:
del /[!a.c] *
del /[!a.c] *yeldsInvalid switch - "[!a.c]".