非常简单,我猜…我需要通过向下面的循环索引variables(%% i)添加前导零来获得可用的variables。
@echo off for /L %%i in (1, 1, 5) do ( echo %%i rem How to create a variable j here as a rem result of adding leading zeros to %%i? (001, 002, 003 etc.) ) pause
怎么样? 我已经尝试了以下,但我无法获取%%我variables的值var_ var_ …
@echo off & setlocal enableextensions for /L %%i in (1, 1, 5) do ( echo %%i set var_=00000%%i set var_=%var_:~-5% echo %var_% ) pause
在字符串前加零,然后从右侧取所需的字符数:
@echo off set count=5 setlocal EnableDelayedExpansion for /L %%i in (1, 1, %count%) do ( set "formattedValue=000000%%i" echo !formattedValue:~-3! )
输出:
001 002 003 004 005
使用setlocal enabledelayedexpansion
,解决方案是这样的:
@echo off setlocal ENABLEDELAYEDEXPANSION set count=5 for /L %%i in (1, 1, %count%) do ( echo %%i set j=00%%i rem to display intermediate values inside loop, surround with ! echo !j! ) endlocal
这里有一个很好的参考: http : //blog.crankybit.com/why-that-batch-for-loop-isnt-working/