![robocopy: исключение каталогов](https://rvso.com/image/1607069/robocopy%3A%20%D0%B8%D1%81%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BA%D0%B0%D1%82%D0%B0%D0%BB%D0%BE%D0%B3%D0%BE%D0%B2.png)
Я использую robocopy для резервного копирования файлов. Поскольку мне нужно исключить некоторые каталоги, я сначала протестировал следующий переключатель:
/xd dirs t*
Он успешно исключает все каталоги, имена которых начинаются с t. Это не совсем то, что я хотел. На самом деле я хочу исключить каталоги, имена которых начинаются с thunderbird\cache, такие как thunderbird\cache, thunderbird\cache2 и т. д. Поэтому я попробовал это:
/xd каталоги thunderbird\cache*
Однако robocopy жалуется на это, говоря: «ОШИБКА: Недопустимый параметр № 7: «thunderbird\cache*»».
Каков синтаксис использования подстановочных знаков в пути?
решение1
Вариант/XD
robocopy
команда\
кажется, принимает подстановочные знаки, если в заданном значении нет разделителя пути ; поэтому cache*
принимается, но thunderbird\cache*
не является.
Эту проблему можно обойти, используя следующий код в пакетном файле:
set "DIRS= "
for /D %%I in ("thunderbird\cache*") do call set "DIRS=%%DIRS%%"%%~I" "
robocopy "D:\source" "D:\destination" *.* /XD %DIRS%