Все, что вы хотите сделать в каждой строке, должно выполняться в цикле for.
Что происходит, вы обновляете переменные для каждой строки. Таким образом, они находятся на последних элементах набора, когда они выходят из цикла for. Затем вы делаете свой mkdir, set & copy, который предназначен только для этого последнего элемента.
Перемещение конечной круглой скобки вниз должно исправить только одно действие.
Затем измените %
на !
, чтобы использовать EnableDelayedExpansion
, который вы уже настроили.
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2,3 delims=," %%G in (MoveFiles.txt) do (
@set "Account_ID=%%G"
@set "PACKAGE_ID=%%H"
@set "FILE_NAME=%%I"
mkdir -p "O:\Documents and Media\!PACKAGE_ID!\!ACCOUNT_ID!"
SET FOO="O:\MediaAttachments\!FILE_NAME!"
COPY !FOO! "O:\Documents and Media\!PACKAGE_ID!\!ACCOUNT_ID!\!FILE_NAME!"
)