批处理怎么利用for循环把多个数值赋值给多个变量

2024-11-08 00:49:13
推荐回答(2个)
回答1:

核心思想:开启CMD的延缓环境变量功能,使用“!!”获取动态生成的变量,开启了CMD的延缓环境变量功能后才可以使用“!!”来获取变量的值,而且是当脚本运行到“!!”时才查找符号表来取值,所以可以获取动态生成的变量的值,普通的“%%”是在该语句刚读取到后就替换好字符串,当遇到这种情况的循环时就不好用了。

示例代码:

@echo off
setlocal ENABLEDELAYEDEXPANSION
FOR /L %%i IN (1,1,10) DO (
SET/a a%%i=%%i+%%i
)
FOR /L %%i IN (1,1,10) DO (
echo !a%%i!
)

测试结果:

“setlocal ENABLEDELAYEDEXPANSION”就是开启CMD的延缓环境变量的功能,具体说明执行“setlocal/?”查看

回答2:

@echo off
setlocal enabledelayedexpansion

set Str=38,146,221,249

for %%a in (%Str%) do (
    set /a Num+=1
    set "S!Num!=%%~a"
)