Windows 脚本:如果语句,则两个变量的比较不起作用

Windows 脚本:如果语句,则两个变量的比较不起作用

我有这部分代码运行起来很奇怪:

if !NoOfLines!==!trailer! (
   echo Count of records in DFUView interface verified ok. >> %LOG_DIR%\%SCRIPT_NAME%.log 
) else ( 
       echo Count of records in DFUView interface do not match trailer . !NoOfLines! !trailer!  Hence aborting. >> %LOG_DIR%\%SCRIPT_NAME%.log
       goto Error
)  

即使变量NoOfLinestrailer具有相同的值(我通过使用 打印进行了确认)echoIf命令也会跳转到Else两个变量不相等的情况的部分。

答案1

在 Windows 批处理脚本中,当您不使用延迟扩展*时,变量必须用%not括起来!。这行代码按预期工作:

if %NoOfLines%==%trailer% (

IF通过在命令提示符中键入,可以获取有关该语句语法的更多信息IF /?

*Setlocal /?在命令提示符下输入有关延迟变量扩展的更多信息

相关内容