在我正在处理的批处理脚本上,我遇到了一些问题。
我想要发生的是将变量设置为自身,但在其后跟一个百分号,一个字母,一个来自for /l (#,#,#)
循环的数字,然后是另一个百分号。
我的代码目前如下;
set value1=1
set value2=10
for /l %%a in (%value1%,1,%value2%) do (
set variable1=%variable1%%b%%a%
)
这根本没有给我%variable1%的值,即使在循环10次之后也是如此。我已经尝试将'variable1 ='(没有撇号)添加到顶部,但是这给了我相同的结果。在四处搜索之后,我想我应该尝试取消在'b'之前和'a'之后的%' - 在他们面前使用%',并且我的代码最终会像这样; < / p>
set value1=1
set value2=10
set variable1=
for /l %%a in (%value1%,1,%value2%) do (
set variable1=%variable1%%b%%a%
)
这是我得到的最接近的,但%variable1%会将值更改为'%b1%',然后是'%b2%',然后是'%b3%'等。而不是将它们彼此相邻
我想要的结果是,在循环结束时,%variable1%的值为; %b1%%b2%%b3%%b4%%b5%%b6%%b7%%b8%%b9%%b10%
我的代码出错了?它似乎应该给我我想要的输出,但很明显,它不是。
先谢谢了,
答案 0 :(得分:0)
试试这个:
@echo off
setlocal EnableDelayedExpansion
set value1=1
set value2=10
set variable1=
for /l %%a in (!value1!,1,!value2!) do (
set percent=%%
set variable1=!variable1!!percent!b%%a!percent!
)
echo !variable1!
您必须添加setlocal EnableDelayedExpansion
,因为这有助于expand the variable at execution time rather than at parse time。