Wyklucz tylko niektóre pliki o tej samej nazwie podczas kopiowania przy użyciu robocopy

15

Mam taką strukturę katalogów:

folder1\
    help.txt
    folder2\
        help.txt
    folder3\
        help.txt
    ...

Chcę skopiować zawartość folderu 1 za pomocą robocopy . Na przykład:

robocopy folder1 destination /E

Chcę wykluczyć plik help.text który jest w folderze folder1 lecz obejmują pliki help.txt w folderze folder2 folder3 itd. Nie mogą być również pliki o nazwie help.txt gdzie indziej w strukturze katalogów, więc nie chcą ciężko zakoduj ścieżki do dołączanych plików.

Czy mogę użyć następującego polecenia, aby wykluczyć wszystkie pliki o nazwie help.txt, ale czy istnieje sposób, aby po prostu wykluczyć plik help.txt w katalogu głównym folderu 1?

robocopy folder1 destination /E /XF help.txt
Daniel Richardson
źródło

Odpowiedzi:

15

Musisz dołączyć pełną ścieżkę (w tym dysk) do pliku, aby wykluczyć. Ścieżki względne nie będą działać.

To działa:

robocopy folder1 destination /E /XF "c:\somedir\another dir\folder1\help.txt"

To nie:

robocopy folder1 destination /E /XF "folder1\help.txt"

To też nie:

robocopy folder1 destination /E /XF ".\folder1\help.txt"
Wstrzymano do odwołania.
źródło
Możesz wykluczyć wiele takich plikówrobocopy folder1 destination /E /XF "c:\file1" "c:\file2"
schnatterer
@ Dennis-Williamson, Dzięki za tę właściwą odpowiedź. Szkoda, że ​​nie działa z symbolami wieloznacznymi: robocopy folder1 destination /E /XF "c:\somedir\another dir\folder1\help.txt*"prowadzi do błędu.
Olivier Faucheux,
Po 2 godzinach próbowania innych poleceń zadziałało. Stukrotne dzięki!
Christopher Chipps,
0

Nie widzę, aby można to zrobić według nazwy pliku. Możesz ustawić atrybut w pliku, którego nie chcesz kopiować, o którym wiesz, że nie ma go w innych plikach w drzewie źródłowym, a następnie użyj / xa, aby wykluczyć pliki z tym atrybutem.

W przeciwnym razie będziesz musiał użyć innego narzędzia.

To zadziała:

echo folder1\help.txt > \temp\excl.txt
xcopy /E folder1 destination /EXCLUDE:\temp\excl.txt

Właściwie, jeśli masz strukturę katalogów, która wyglądała tak:

folder1\
  help.txt
  folder1\
    help.txt

prawdopodobnie wykluczyłby oba te pliki.

wfaulk
źródło
Widzę, że się mylę.
wfaulk
0

Możesz użyć% CD%, aby uzyskać bieżący katalog. Powinno to pomóc w wykluczeniu określonych katalogów. Więcej pomocy jest tutaj:

/programming//a/5274061

ABC
źródło