我有一个程序可以自动将文件复制到一个目录,如果它创建了重复文件,它会像这样命名:
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"
如果从批处理文件运行,则需要将百分号加倍。然后先用echo
而不是进行测试del
。
答案2
不需要FOR
,del
可以接受通配符。尝试:
del "c:\files\* - 1.xxx"
将匹配目录中带有后缀“-1.xxx”的任何内容。