打扰一下。我不喜欢这种类型的代码。在我个人看来,以这种方式将这些值作为数组进行管理是很清楚的:
rem Prepare the array of two-digits values for each 3-letters month names:
for %%a in ("Jan=01" "Feb=02" "Mar=03" "Apr=04" "May=05" "Jun=06" "Jul=07" "Aug=08" "Sep=09" "Oct=10" "Nov=11" "Dec=12") do (
set month%%~a
)
rem Previous code is equivalent to these 12 lines:
rem set monthJan=01
rem set monthFeb=02
. . . .
rem set monthDec=12
rem This way, the result is immediately accessible:
SET v=May
CALL SET v=%%month%v%%%
rem Or in the clearer way using Delayed Expansion:
SET v=!month%v%!
monthXXX
是12 个不同的 3 个字母月份名称的值数组。
SET v=May
将索引的值设置为元素数组。
SET v=!month%v%!
先扩展为SET v=!monthMay!
(正常扩展),然后扩展为SET v=05
(延迟扩展)。
我已经解释了我必须在这些帖子中的每一个细节中更喜欢这种表示法的原因:
cmd.exe(批处理)脚本中的数组、链表和其他数据结构
DIR 输出到 BAT 阵列?
如果有人认为这个答案是题外话,我深表歉意......
安东尼奥