это магия. Банальная ошибка.
if x==0
Он не сравнивает значение переменной, а просто х.
Вот как это работает и работает как задумано:
if %x%==0
...
Тем не менее, это не работает в моем полном примере (также после ELSE. Вылетает):
cd %userprofile%/desktop/ffmpeg
set цикл==for %%a in ("in\*.*") do (
set va=
set vat=только аудио
:Гменю
echo =================================================================
echo [7]-Скачать видео по ссылке
echo [8]-Скачать видео списоком
echo [9]-Переключить режим скачивания (бычный/аудио). Сейчас активен режим: %vat%
echo %va%
echo [0]-Выход
echo =================================================================
choice /c 1234567890 /n /m "Нажми на клавиатуре клавишу, согласно пункту меню:"
if %ErrorLevel%==2 (goto ручныенастройки)
if %ErrorLevel%==9 (if %vat%==обычный (set vat=только аудио & set va=--extract-audio --audio-format mp3 --audio-quality & cls & goto Гменю) else if %vat%==только аудио (set vat=обычный & set va=88 & cls & goto Гменю))
Здесь «переключатель» работает отлично:
set x=900
:1
cls
echo bla-bla-bla u select to: %x%
echo ============
choice /c 12 /n
if %ErrorLevel%==1 (if %x%==0 (set x=1 & goto 1) else set x=0 & goto 1)
if %ErrorLevel%==2 (if %x%==2 (set x=3 & goto 1) else set x=2 & goto 1)
goto 1