Виключіть лише деякі файли з тим самим іменем при копіюванні за допомогою роботокопії


15

У мене така структура каталогів:

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

Я хочу скопіювати вміст папки1 за допомогою роботоскопії . Наприклад:

robocopy folder1 destination /E

Я хочу виключити файл help.text, який знаходиться у папці1, але включати файли help.txt у папку2, папку3 тощо. Також можуть бути файли з назвою help.txt в інших місцях у структурі каталогу, тому мені не хочеться робити це кодуйте шляхи до файлів, які слід включити.

Я можу використовувати наступну команду для виключення всіх файлів з назвою help.txt, але чи є спосіб просто виключити файл help.txt у корені папки1?

robocopy folder1 destination /E /XF help.txt

Відповіді:


15

Ви повинні виключити повний шлях (включаючи диск) до файлу, щоб виключити його. Відносні шляхи не працюватимуть.

Це працює:

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

Це не так:

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

Не так:

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

Ви можете виключити декілька файлів, як-от такrobocopy folder1 destination /E /XF "c:\file1" "c:\file2"
schnatterer

@ Денніс-Вільямсон, дякую за правильну відповідь. Шкода, що це не працює з символами: robocopy folder1 destination /E /XF "c:\somedir\another dir\folder1\help.txt*"призводить до помилки.
Олів'є Фошо

Тому через 2 години спроб інших команд це спрацювало. Завдяки мільйонів!
Крістофер Чіпс

0

Я не бачу, що існує якийсь спосіб зробити це за назвою файлу. Ви можете встановити атрибут у файлі, який ви не хочете скопіювати, що ви "знаєте", немає в жодному іншому файлі у вихідному дереві, а потім використовувати / xa для виключення файлів із цим атрибутом.

Якщо цього не зробити, вам знадобиться скористатися іншим інструментом.

Це спрацює:

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

Насправді, якщо у вас була структура каталогу, яка виглядала приблизно так:

folder1\
  help.txt
  folder1\
    help.txt

це, мабуть, виключить обидва ці файли.


Я бачу, що я помиляюся.
wfaulk

0

Ви можете використовувати% CD%, щоб дати вам поточний каталог. Це допоможе вам виключити конкретні каталоги. Більше допомоги тут:

/programming//a/5274061

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.