Mam program, który automatycznie kopiuje pliki do katalogu, a jeśli utworzy duplikat, nazwie go tak:
file with duplicate.xxx
file with duplicate - 1.xxx
file with duplicate - 2.xxx
Potrzebuję sposobu na usunięcie wszystkich duplikatów za pomocą pliku wsadowego systemu Windows.
Coś w stylu:
FOR %f IN (C:\files\*.*) DO del "%f - 1"
To jednak nie zadziała, ponieważ rozwiązałoby to problem file with duplicate - 1.xxx - 1
windows
command-line
batch
Chris Sobolewski
źródło
źródło
Odpowiedzi:
Jeśli chcesz usunąć wszystkie pliki o nazwie, która kończy się na
- ?
, oznacza to, że byłeś blisko.Spróbuj tego:
Będziesz musiał podwoić znaki procentu, jeśli uruchamiasz go z pliku wsadowego. I przetestuj za pomocą
echo
zamiastdel
pierwszego.źródło
Nie ma potrzeby
FOR
,del
może akceptować symbole wieloznaczne. Próbować:Dopasuje wszystko z sufiksem „- 1.xxx” w katalogu.
źródło