批处理文件中嵌套的for循环不会展开

时间:2019-03-05 15:51:55

标签: batch-file for-loop

第一次来这里,热衷于寻求帮助,困扰我一整天。

我的根目录包含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

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

0 个答案:

没有答案
相关问题