Odpowiedzi:
Czytanie odpowiednich sekcji pomocy xcopy
/EXCLUDE:file1[+file2][+file3]...
Specifies a list of files containing strings. Each string
should be in a separate line in the files. When any of the
strings match any part of the absolute path of the file to be
copied, that file will be excluded from being copied. For
example, specifying a string like \obj\ or .obj will exclude
all files underneath the directory obj or all files with the
.obj extension respectively.
Widzimy, że opcja wykluczenia nie działa na ścieżkach lub nazwach plików, ale „filtruje”. Aby to zilustrować, postaram się podać krótki przykład. Wyobraź sobie to exclude.txt
Unicorns
Dolphins
Spowoduje to odfiltrowanie dowolnego pliku, który ma jednorożce lub delfiny w dowolnym miejscu w jego nazwie. np. Dolphins.txt będzie filtrowane, ale Ponys.txt będzie w porządku.
Aby wrócić do problemu. Przyczyną niezgodności filtra nie jest miejsce na ścieżce. Domyślnie xcopy dba tylko o nazwę pliku, a nie o pełną ścieżkę, każdy filtr, który zawiera pełną ścieżkę, nie będzie pasował i plik zostanie skopiowany.
Możesz zmienić to zachowanie xcopy poprzez podanie flagi / f w swoim poleceniu. To powinno rozwiązać problem, który widzisz.
Edytuj exclude.txt
i wstaw podwójne cudzysłowy wokół ścieżki zawierającej spację.
Jedną rzeczą, którą zrobiłem w tej sytuacji, jest użycie „krótkiej nazwy” (nazwa DOS 8.3 w starym stylu). Możesz uzyskać tę nazwę za pomocą dir /x
. Każda wersja systemu Windows od Win 95, która dopuszczała długie nazwy plików, również dopuszczała tę alternatywną nazwę 8.3 dla plików / katalogów.
exclude.txt
tym ścieżkę zawierającą spację?