REM. - простейшая команда, сбрасывающая ERRORLEVEL в 0. Это на случай, если вместо "Echo OK" стоит последовательность произвольных команд, которые могут изменить значение ERRORLEVEL. Чтобы было понято, достаточно сравнить результат кода с REM. и без него:
Код:
![Выделить весь код](images/misc/selectcode.png)
@Set $1=1 && (
Echo OK
Set "$2="
REM.) || (
Echo ERROR
)
Суть в том, что в последовательности команд, разделенной
&& ,
|| батник пытается последовательно выполнить КАЖДУЮ, в зависимости от текущего ERRORLEVEL (на момент выполнения заданной команды), поэтому нужно либо отслеживать результат каждой команды, либо тупо восстанавливать ERRORLEVEL по выходу из блока.
P.S. команда
Set "$2=" вызывает ошибку удаления несуществующей переменной, устанавливая ERRORLEVEL=1