
我有一個程式可以自動將文件複製到目錄,如果它建立一個副本,它會像這樣命名它:
file with duplicate.xxx
file with duplicate - 1.xxx
file with duplicate - 2.xxx
我需要一種方法來使用 Windows 批次檔刪除所有重複項。
大致如下:
FOR %f IN (C:\files\*.*) DO del "%f - 1"
然而,這是行不通的,因為這將解決file with duplicate - 1.xxx - 1
答案1
如果您想刪除名稱以 結尾的所有文件- ?
,那麼您已經很接近了。
嘗試這個:
FOR %%f IN ("C:\files\* - ?.*") DO del "%%f"
如果從批次檔運行它,則需要將百分號加倍。並用 aecho
而不是del
第一個進行測試。
答案2
不需要FOR
,del
可以接受通配符。嘗試:
del "c:\files\* - 1.xxx"
將符合目錄中帶有後綴“- 1.xxx”的任何內容。