すみません。私はこのタイプのコードが好きではありません。私の個人的な意見では、これらの値を次のように配列として管理することは非常に明白です。
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アレイに?
この回答がトピックから外れていると誰かが思った場合は、お詫び申し上げます...
アントニオ