Как скопировать файл по пути windows с подстановочными знаками в нем? - PullRequest
0 голосов
/ 18 июня 2020

Я новичок с ie до windows os. Прошу прощения за мой вопрос, если вы считаете, что это вопрос новичка.

Я пытаюсь скопировать файл с одного пути на другой. Дело в том, что в пути назначения есть подстановочный знак. Как скопировать? Я решил, что это простая задача, но это не так.

Это команда

copy *.zip "C:\MyCave\iso\SDG\cmpdir\copy test\ab\cd\*\gh"

Папка после ab\cd - это динамический c. Итак, я попытался использовать подстановочный знак, но это вызывает ошибку.

The filename, directory name, or volume label syntax is incorrect.
        0 file(s) copied.

Я хочу скопировать файлы в каталог gh в пути.

Как это сделать?

С уважением

1 Ответ

1 голос
/ 18 июня 2020

Я бы предложил этот метод.

For /D %G In ("C:\MyCave\iso\SDG\cmpdir\copy test\ab\cd\*") Do @For %H In ("%G\gh") Do @If "%~aH" GEq "d" Copy /Y "*.zip" "%~H" 1>NUL

Чтобы понять, что делает команда, откройте окно командной строки, введите for /?, нажмите клавишу ENTER , и прочтите представленную информацию. Вы должны сделать то же самое, используя If /? и Copy /? также .

Первая часть, For /D %G In ("FilePath\*"), вернется как %G каталоги, расположенные в FilePath. (каждый из них будет вашими динамическими / неизвестными именами каталогов) .

В следующей части используется еще один l oop для проверки каждого из этих неизвестных каталогов, с добавлением ваших известных имен каталогов. Это. Результаты этого l oop, , возвращенные как %H, затем проверяются на наличие атрибута d irectory, и если он истинен, команда копирования выполняется с его использованием.

Обратите внимание, что если существует несколько имен каталогов Dynami c, содержащих подкаталог с именем gh, ваши файлы .zip будут скопированы в каждый из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...