批处理文件基础知识:将硬编码整数添加到 for 循环中的变量



我想简单地将 10 添加到此批处理文件代码中的变量"%%i"并将其打印到屏幕上。 数字.txt 是一个包含单列数字的文件。

FOR /F %%i IN (numbers.txt) DO (
    set /a "T=%%i+10"
    @echo %T%
)

例如,如果 %%i 是 1,我希望 T 是 11。

谢谢。

如果没有延迟扩展,您可以使用:

@echo off
set constant=10
FOR /F %%i IN (numbers.txt) DO (
    set /a "T=%%i+%constant%"
    call echo %%T%%
)
常量

不需要延迟扩展,因为它在整个循环中都是常量。

尝试以下代码,它应该根据您在问题中的描述工作:

@echo off
setlocal enabledelayedexpansion
set T=0  
set K=10
for /f %%i in (numbers.txt) do (    
  set /A T=!K! + %%i    
  echo !T! )
endlocal

将其另存为.bat文件扩展名并从命令提示符运行。
如果文件编号.txt包含:

1
2
3

输出将是:

11
12
13

您可以通过延迟环境变量扩展来执行此操作。在外壳中,您必须首先键入

cmd /v

然后,您可以执行此批处理脚本:

FOR /F %%i IN (numbers.txt) DO (
    set /a T=%%i + 10
    @echo !T!
)

如果您不先运行cmd /v,那么它将简单地按字面意思输出!T!。有关延迟环境变量扩展的详细信息,请参阅set /?

通过启用延迟扩展来启动批处理文件。 启用延迟扩展后,使用 ! 而不是 % 在循环中引用变量。

SETLOCAL ENABLEDELAYEDEXPANSION
FOR /F %%i IN (numbers.txt) DO (
    set /a "T=%%i+10"
    @echo !T!
)

最新更新