我已将有问题的代码剥离到有问题的行。为什么第一个回声有效而第二个无效?
setlocal enabledelayedexpansion
set /a r=19
set blocks=MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
for /L %%a in (-%r%,1,%r%) do (
set /a w2=r
:: This works
set line=!blocks:~0,%r%!
echo( !line!
::This does'nt work
set line=!blocks:~0,!w2!!
echo( !line!
)
exit /b
编辑:我一直在尝试,这条线有效:
call set line=%%blocks:~0,!w2!%%
现在的问题是:有人可以向我解释为什么我必须使用电话吗?