Xóa tệp khỏi một thư mục nếu tệp không có tên tương tự không tồn tại trong thư mục khác


8

Tôi cần xóa các tệp khỏi thư mục A nếu một tệp có cùng tên nhưng loại tệp khác nhau không tồn tại trong thư mục B.

Ví dụ:

FOLDER A
file1.gif
file2.gif
file3.gif
file4.gif
file5.gif
file6.gif

FOLDER B
file2.jpg
file4.jpg
file6.jpg

Các tập tin batch hoặc phần mềm sẽ so sánh hai thư mục và xóa file1.gif, file3.giffile5.giftừ thư mục A.

Câu trả lời:


7

Bạn có thể làm điều này trực tiếp từ dòng lệnh:
for %F in ("A\*.gif") do @if not exist "B\%~nF.jpg" echo del "%F"
Ví dụ trên chỉ đơn giản là in các lệnh để bạn có thể xác minh nó sẽ làm những gì bạn muốn. Sau khi bạn chắc chắn rằng nó sẽ loại bỏ echovà nó sẽ thực sự chạy delete.
Bạn dĩ nhiên có thể đặt điều này trong đợt một, nếu bạn muốn để thay thế %với %%và remove @(và có lẽ thêm @echo offthay vì)


Điều này hoạt động hoàn hảo - tôi ước tôi có thể bỏ phiếu hai lần. Cảm ơn rất nhiều.
ajcw

Cũng hoạt động nếu bạn muốn xóa các tệp khỏi A mà EXIST trong B:for %F in ("A\*.gif") do @if exist "B\%~nF.jpg" echo del "%F"
PaloDravecky 10/11/2015
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.