我正在尝试获取数字列表,例如 11111111 和一个字母。用数字计算的字母 si。就像是:
@echo off
set var=23
FOR /L %%H IN (40000000,1,49999999) DO (
set number = %%H+%var%
echo %number%A
)
pause
exit
我想得到(或多或少)
400000023A
400000024A
400000025A
...
但是在不改变 FOR 语句的情况下……这可能吗?
我正在尝试获取数字列表,例如 11111111 和一个字母。用数字计算的字母 si。就像是:
@echo off
set var=23
FOR /L %%H IN (40000000,1,49999999) DO (
set number = %%H+%var%
echo %number%A
)
pause
exit
我想得到(或多或少)
400000023A
400000024A
400000025A
...
但是在不改变 FOR 语句的情况下……这可能吗?
要继续 jeb 所说的,对于您请求的输出,代码应该是这样的:
@echo off & setlocal EnableDelayedExpansion
set var=23
FOR /L %%H IN (40000000,1,49999999) DO (
set /a number=%%H+!var!
echo !number!A
)
endlocal
pause
exit
set
语句中 避免空格如果要计算
set /a number=%%H+var ,请使用 set /a
避免在块中(以及在 FOR 块中)进行百分比扩展,
而是使用延迟扩展(将 a 添加setlocal EnableDelayedExpansion
到您的文件中)
echo !number!A
jeb 提供了修复代码所需的提示,而 Jeff K 实际实现了修复。
但是,由于您要为每个值添加一个常量,因此将常量添加到 FOR /L 开始值和结束值会更简单、更有效。
@echo off
setlocal
set var=23
set /a "start=40000000+var, end=49999999+var"
for /l %%H in (%start%, 1, %end%) do echo %%HA
有,但改变了 FOR 句子。
您实际上在那里忘记了 setlocal 命令。
setlocal EnableDelayedExpansion
需要此命令才能添加变量。
还是不明白?
这是代码,以便您添加变量。
@echo off
setlocal EnableDelayedExpansion
cls
set var=17
echo %var%
pause
set /a var=%var%+7
echo %var%
pause
尝试找出我的代码中的任何错误和错误。然后测试它。
你有它!添加变量!
批量使用数字
set /a
查看set /?
所有信息。
最好的方法是:
set /a counter+=1
所以:
@echo off
set /a counter=
:Top
set /a counter+=1
echo 4000000%counter%A
GOTO Top
您可以复制上面的代码。