nie można wykluczyć ścieżki ze spacją (xcopy)

2

Próbuję użyć, xcopy /exclude:exclude.txta jedna ze ścieżek exclude.txtzawiera przestrzeń i nie działa. Czy istnieje jakieś obejście tego problemu?

JoelFan
źródło
Czy możesz podać przykłady ścieżek, w exclude.txttym ścieżkę zawierającą spację?
Velociraptors

Odpowiedzi:

4

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.

Paxxi
źródło
Łał! / f działa, ale ten efekt jest całkowicie nieudokumentowany! Ma to tylko wpływać na drukowanie wiadomości, a nie na to, jak interpretuje plik Wykluczenia!
JoelFan
1

Edytuj exclude.txti wstaw podwójne cudzysłowy wokół ścieżki zawierającej spację.

Welociraptory
źródło
0

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.

snapshoe
źródło
używanie krótkich nazw plików może się nie powieść. Domyślnie system Windows tworzy krótkie nazwy plików, ale można to wyłączyć za pomocą narzędzia fsutil. Często jest to zalecane w przewodnikach dostosowywania, aby wyłączyć to, więc nie jest to coś, czego chcesz projektować.
Paxxi
Dzięki Pär. Nie zdawałem sobie sprawy, że można to wyłączyć.
snapshoe