Синтаксис Robocopy / if (Include Files) не соответствует синтаксису / xf - PullRequest
2 голосов
/ 21 февраля 2020

Я пытаюсь использовать флаг / if (Include Files) для robocopy, чтобы предоставить список массивов всех файлов, которые я хотел бы скопировать.

Я успешно сделал это при установке исходного каталога просто 1 уровень вверх (например, C: \ Documents \ Folder) и предоставление только имени файла в массиве после / if (например, / if file1).

Однако, когда я пытаюсь установить исходный каталог 2 уровня вверх (например, C: \ Documents) и передайте весь путь к файлу в / if (например, если / C: \ Documents \ Folder \ file1 [без расширения для этих файлов]), robocopy не распознает весь путь к файлу как действительный параметр. Я попытался использовать только один путь к файлу вместо массива, и несколько способов ввода этого, например, с помощью двойных кавычек вокруг пути к файлу, но все еще допустил ошибку с недопустимым параметром.

Чтобы проверить, я пытался сделать наоборот с / xf, и robocopy успешно исключил этот файл.

Является ли это ограничением флага / if для robocopy?

robocopy C:\Documents D:\Documents /e /tee etc... /if "C:\Documents\Folder\file1"

Спасибо.

1 Ответ

0 голосов
/ 21 февраля 2020

Параметр /if предназначен для создания заданий по роботизации. Он поддерживает только фильтры, а не пути. Таким образом, вы могли бы сделать:

robocopy C:\Documents D:\Documents /e /if *.pdf /save:myjob

Синтаксис robocopy позволяет указывать имена файлов для копирования, но не пути:

robocopy C:\Documents\Folder D:\Documents\Folder file1 file2

(Примечание: имена файлов, указанные здесь и с /if опции объединяются.)

Если все ваши файлы находятся в одной папке, вы можете просто указать все их имена. Если они находятся в разных папках, необходимо выполнить команду для каждой папки.

...