第一次来这里,热衷于寻求帮助,困扰我一整天。
我的根目录包含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
。