У меня есть несколько файлов, расположенных в нескольких каталогах / подпапках, которые мне нужно скопировать в несколько мест назначения. В настоящее время я делаю это с помощью xcopy, но я делаю это построчно, так что есть несколько строк кода. Друг предложил вместо этого использовать массив, что я и пытаюсь сделать сейчас.
Я пробовал несколько вариантов заставить это работать. Мой последний вариант выглядит так:
@echo off
set "mansource=somelocation\location1\sourcefolder"
set "mandest=someloacation\location2\destfolder
set src[0]="%MANSOURCE%\folderA\number1.pdf"
set dest[0]="%MANDEST%\folderB\number\1"
set src[1]="%MANSOURCE%\folderC\number2.pdf"
set dest[1]="%MANDEST%\folderD\number\2"
set /a "x=0"
for /r "%mansource%" %%f in (!src!) do xcopy "%%f" "!dest!" /v/y
pause
Так что я знаю, что это неправильно, поскольку это не работает, но ничто из того, что я пробовал, тоже не сработало. Каждый пример, который я нашел в Интернете об использовании массивов в пакете, имеет только команду "do (echo"), чтобы либо перечислить то, что индексируется, либо распечатать инструкцию в командной строке cmd. Я не смог найти никаких примеров, касающихся такой функции, как копирование. У меня был вариант вышеупомянутого кода, но он просто привел к бесконечному циклу с повторением "0 файлов скопировано" навсегда.
Идея состоит в том, чтобы скопировать файл в src [0] в местоположения в dest [0], затем в файл в src [1] и так далее.
Любой совет будет принят во внимание.
Примечание. Использование подстановочного знака * .pdf не будет работать, так как в этих местах есть другие файлы pdf, и мне нужно скопировать только определенные файлы. Кроме того, каждый файл находится в другом месте по сравнению со следующим, и каждый пункт назначения копии для этого файла также отличается.