robocopy: исключение каталогов

robocopy: исключение каталогов

Я использую robocopy для резервного копирования файлов. Поскольку мне нужно исключить некоторые каталоги, я сначала протестировал следующий переключатель:

/xd dirs t*

Он успешно исключает все каталоги, имена которых начинаются с t. Это не совсем то, что я хотел. На самом деле я хочу исключить каталоги, имена которых начинаются с thunderbird\cache, такие как thunderbird\cache, thunderbird\cache2 и т. д. Поэтому я попробовал это:

/xd каталоги thunderbird\cache*

Однако robocopy жалуется на это, говоря: «ОШИБКА: Недопустимый параметр № 7: «thunderbird\cache*»».

Каков синтаксис использования подстановочных знаков в пути?

решение1

Вариант/XDrobocopyкоманда\кажется, принимает подстановочные знаки, если в заданном значении нет разделителя пути ; поэтому cache*принимается, но thunderbird\cache*не является.

Эту проблему можно обойти, используя следующий код в пакетном файле:

set "DIRS= "
for /D %%I in ("thunderbird\cache*") do call set "DIRS=%%DIRS%%"%%~I" "
robocopy "D:\source" "D:\destination" *.* /XD %DIRS%

Связанный контент