Hapus file dari satu folder jika file dengan nama yang sama tidak ada di folder lain

8

Saya perlu menghapus file dari folder A jika file dengan nama yang sama tetapi jenis file yang berbeda tidak ada di folder B.

Sebagai contoh:

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

FOLDER B
file2.jpg
file4.jpg
file6.jpg

File batch atau perangkat lunak akan membandingkan dua folder dan menghapus file1.gif, file3.gifdan file5.gifdari folder A.

ajcw
sumber

Jawaban:

7

Anda dapat melakukan ini langsung dari baris perintah:
for %F in ("A\*.gif") do @if not exist "B\%~nF.jpg" echo del "%F"
Contoh di atas hanya mencetak perintah sehingga Anda dapat memverifikasi itu akan melakukan apa yang Anda inginkan. Setelah Anda yakin tidak apa-apa hapus echodan itu benar-benar akan berjalan delete.
Anda tentu saja dapat menempatkan ini dalam satu batch, jika Anda ingin jadi ganti %dengan %%dan hapus @(dan mungkin tambahkan @echo offsebagai gantinya)

wmz
sumber
Ini bekerja dengan sempurna - saya berharap saya bisa memilih dua kali. Terima kasih banyak.
ajcw
Juga berfungsi jika Anda ingin menghapus file dari A yang ADA di B:for %F in ("A\*.gif") do @if exist "B\%~nF.jpg" echo del "%F"
PaloDravecky