Вложенный цикл в пакетном файле не расширяется - PullRequest
1 голос
/ 05 марта 2019

Впервые здесь и хочу попросить о помощи что-то, что застало меня на весь день.

У меня есть корневой каталог, содержащий подпапки для 44 стран.Внутри папки страны находятся файлы, которые я хотел бы добавить в zip-архив для сохранения в той же папке страны.

У меня есть файл списка cou_dir_list.lst, который содержит следующую запись:

Z:\Data\Fossil-Fuel Subsidies Report\common data files\AUS
Z:\Data\Fossil-Fuel Subsidies Report\common data files\AUT
Z:\Data\Fossil-Fuel Subsidies Report\common data files\ZAF

Ради простоты я перечислил только 3 страны.

У меня есть следующий код:

REM @Echo On
setlocal EnableDelayedExpansion 

for /F "usebackq tokens=*" %%f in (cou_dir_list.lst) do (

    for /D %%g in ("%%f\*???_*.*") do (
        "c:\Program Files\7-Zip\7z.exe" a "%%f\XXX_deleg.zip" "%%g"
    )

)

Идея состоит в том, чтобы получить каждую страну к югу-директории (читая lst файл), затем добавляя каждый файл (с форматом *???_*.*) внутри папки страны в архив XXX_deleg.zip для сохранения в той же папке страны, на которую указывает %%f.

Тем не менее, я все еще получаю следующие echo s:

Z:\Data\Fossil-Fuel Subsidies Report\common data files>REM @Echo On

Z:\Data\Fossil-Fuel Subsidies Report\common data files>setlocal EnableDelayedExpansion

Z:\Data\Fossil-Fuel Subsidies Report\common data files>for /F "usebackq tokens=*" %f in (cou_dir_list.lst) do (for / %g in ("%f\*???_*.*") do ("c:\Program Files\7-Zip\7z.exe" a "%f\XXX_deleg.zip" "%g" ) )

Z:\Data\Fossil-Fuel Subsidies Report\common data files>(for / %g in ("Z:\Data\Fossil-Fuel Subsidies Report\common data files\AUS\*???_*.*") do ("c:\Program Files\7-Zip\7z.exe" a "Z:\Data\Fossil-Fuel Subsidies Report\common data files\AUS\XXX_deleg.zip" "%g" ) )

Z:\Data\Fossil-Fuel Subsidies Report\common data files>(for / %g in ("Z:\Data\Fossil-Fuel Subsidies Report\common data files\AUT\*???_*.*") do ("c:\Program Files\7-Zip\7z.exe" a "Z:\Data\Fossil-Fuel Subsidies Report\common data files\AUT\XXX_deleg.zip" "%g" ) )

Кажется, что переменные во втором цикле for не раскрываются, поскольку они выводятся как %g.

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