我尝试在菜单中切换参数,但反向切换却没有改变。一切看似简单,但却行不通。
set x=900
:1
cls & echo %x%
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==900 (set x=2 & goto 1))
goto 1
答案1
这就是你想做的事吗?
set x=900
:1 cls & echo %x%
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==900 (set x=2 & goto 1) else goto 1)
我在最后一行添加else
并移动了。)
答案2
这是魔术。平庸的错误。
if x==0
它不比较变量的值,而只是比较 x。这就是它的工作原理,并且按预期工作:
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