Câu trả lời:
Bạn có thể sử dụng các lệnh for
và 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.
for
thườ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"
IF
câ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
%f
có 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 Del
lệnh?
Đối với tốc độ, tôi sử dụng delen :
delen /! a.c
TCC / LE cũng có mộtdel
lệnhmạnh mẽ hơn:
del /[!a.c] *
del /[!a.c] *
yeldsInvalid switch - "[!a.c]".