-2

У меня есть эта часть кода, который работает странно:

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
)  

Даже если переменные NoOfLines и trailer имеют одно и то же значение, которое я подтвердил печатью с помощью echo , команда If переходит к части Else которая относится к случаю, когда две переменные не равны.

1 ответ1

2

В пакетном сценарии Windows переменные должны быть окружены символом % not ! когда вы не используете отложенное расширение *. Эта строка кода работает как положено:

if %NoOfLines%==%trailer% (

Дополнительную информацию о синтаксисе оператора IF можно получить в командной строке, набрав IF /? ,

* Тип Setlocal /?в командной строке для получения дополнительной информации о задержке расширения переменной

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .