
Я использую 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%