Batch file 编号为';t添加到if语句中的变量
为什么此批处理脚本不将值5添加到变量Batch file 编号为';t添加到if语句中的变量,batch-file,if-statement,add,Batch File,If Statement,Add,为什么此批处理脚本不将值5添加到变量%counter%? 脚本始终回显初始化变量时使用的值2。 在if语句之外,计数器工作正常 :start set /a counter=2 set /p message=Message: set "spam=%message%" echo %spam% if "%message%"=="%spam%" ( set /a counter=%counter% + 5 echo %counter% ) pause goto start 您需要使用d
%counter%
?
脚本始终回显初始化变量时使用的值2。
在if语句之外,计数器工作正常
:start
set /a counter=2
set /p message=Message:
set "spam=%message%"
echo %spam%
if "%message%"=="%spam%" (
set /a counter=%counter% + 5
echo %counter%
)
pause
goto
start
您需要使用delayedexpansion。%正在If语句外部计算计数器%,但不在其内部
@echo off
setlocal enabledelayedexpansion
:start
set /a counter=2
set /p message=Message:
set "spam=%message%" echo %spam%
if "%message%"=="%spam%" ( set /a counter=%counter% + 5
echo !counter! )
pause
goto start
只是一个粗略的尝试,但计数器+=5是否工作?已尝试:D但不工作:(出现缺少运算符错误我想知道为什么它以前不工作。我已尝试添加setlocal enabledelayedexpansion,但我认为脚本的其余部分有点不同。感谢您的帮助!