Не балуйтесь с уровнем ошибки. Это внутренняя переменная. В начале пакета уровень ошибки будет равен 0, потому что все, что вы сделали, - это установили локальную переменную. Это почти всегда (никогда не говори никогда) будет успешным. Кроме того, если errorlevel равен 1, и я читаю это правильно, у вас также, кажется, есть бесконечный цикл? Из того, что я понимаю из того, что вы сказали, ваши партии выглядят так:
Главная
@echo off
color 0f
cls
set currentver=v0.5.6
IF %errorlevel% EQU 1 goto begin
call updater.bat
:begin
echo MENU
Updater
set=errorlevel 1
wget (updatelink here)
call mainprogram.bat
Поскольку уровень ошибки get перезаписывается каждый раз, когда вы делаете что-либо, о чем вы просите. Измените %errorlevel%
на %error%
, и это должно решить ваши проблемы. Поскольку это локальная переменная среды, она также должна передаваться между пакетными файлами. Просто будьте осторожны, чтобы не использовать ошибку в другом месте.