我想简单地将 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!
)