2

我正在尝试获取数字列表,例如 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 语句的情况下……这可能吗?

4

6 回答 6

3

要继续 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
于 2012-09-26T16:04:59.200 回答
2
  1. set语句中 避免空格
  2. 如果要计算
    set /a number=%%H+var ,请使用 set /a

  3. 避免在块中(以及在 FOR 块中)进行百分比扩展,
    而是使用延迟扩展(将 a 添加setlocal EnableDelayedExpansion到您的文件中)
    echo !number!A

于 2012-09-26T12:44:51.230 回答
1

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
于 2012-09-27T12:24:46.237 回答
1

有,但改变了 FOR 句子。

您实际上在那里忘记了 setlocal 命令。

setlocal EnableDelayedExpansion

需要此命令才能添加变量。

还是不明白?

这是代码,以便您添加变量。

@echo off
setlocal EnableDelayedExpansion
cls
set var=17
echo %var%
pause
set /a var=%var%+7
echo %var%
pause

尝试找出我的代码中的任何错误和错误。然后测试它。

你有它!添加变量!

于 2016-08-10T00:14:55.453 回答
0

批量使用数字

set /a

查看set /?所有信息。

于 2012-09-26T12:39:25.413 回答
0

最好的方法是:

set /a counter+=1

所以:

@echo off
set /a counter=
:Top
set /a counter+=1
echo 4000000%counter%A
GOTO Top

您可以复制上面的代码。

于 2017-02-10T03:03:39.373 回答