我希望有:
a=id
b=name
c=age
这是我写的批处理Windows文件:
setlocal enabledelayedexpansion
set MY_LIST[0]=id
set MY_LIST[1]=name
set MY_LIST[2]=age
set /A COUNTER=0
FOR %%A IN (A B C) DO (
ECHO %%A=%MY_LIST[!COUNTER!]%
set /A COUNTER+=1
)
endlocal
为什么这不起作用?
您已将延迟扩展的顺序颠倒了。在您拥有的地方%MY_LIST[!COUNTER!]%
,解释器在尝试扩展外部时没有扩展内部。您需要找到另一种扩展方式,!COUNTER!
然后再将其用作数组索引,并且延迟扩展的!MY_LIST[n]!
时间比还要长!COUNTER!
。这是一种方法:
for %%A in (A B C) do (
for %%I in ("!COUNTER!") do ECHO %%A=!MY_LIST[%%~I]!
set /A COUNTER += 1
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句