使用数组批量修改DOFRI模型命令中的多变量
问题:同步迭代修改DOFRI模型命令的Record和Index参数
需求说明
我有一个基于DOFRI(Database, Object, Field, Record, Index)模型的行内命令"updatesysdb 11 15 88 545112 0",希望通过多数组同步迭代修改其中的Record(545112)和Index(0)参数,其余部分保持不变。
数组定义
set MMU_Mv_Records=155655 155656 155657 155658 set MMU_Mv_Indexes=1500 900 1100 300
尝试的脚本(存在重复输出问题)
使用嵌套for循环后,生成了8行输出而非期望的4行:
setlocal enabledelayedexpansion enableextensions set MMU_Mw_Indexes=155655 155656 155657 155658 set MMU_Mw_Values=1500 900 1100 300 for %%p in (%MMU_Mw_Indexes%) do ( for %%q in (%MMU_Mw_Values%) do ( echo updatesysdb 11 15 88 %%p %%q ping 127.0.0.1 -n 1 -w 500> nul))
期望输出
"updatesysdb 11 15 88 155655 1500" "updatesysdb 11 15 88 155656 900" "updatesysdb 11 15 88 155657 1100" "updatesysdb 11 15 88 155658 300"
修改后的可行脚本
感谢Magoo的回复,已调整脚本实现同步迭代,适配扩展需求:
@echo off setlocal EnableExtensions DisableDelayedExpansion set "MMU_REC=551255 551256 551257" set "MMU_IDX=0 1 4" (for /L %%I in (1,1,3) do call :RunTest %%I) & exit /B :RunTest for /F "tokens=%1" %%J in ("%MMU_REC%") do set "V_REC=%%J" for /F "tokens=%1" %%J in ("%MMU_IDX%") do set "V_IDX=%%J" echo updatesysdb 11 15 88 %V_REC% %V_IDX% REM ping 127.0.0.1 -n 1 -w 500> nul) timeout /t 2 /nobreak>nul goto :EOF
内容的提问来源于stack exchange,提问作者NanoNet
相关产品推荐
相关产品推荐

