Вы можете сделать это двумя различными способами: первый - полностью удалить ==
там, где он представлен, поскольку это наиболее распространенный способ сделать это при использовании команды choice
:
choice /N /C:1234 /M "Option: "
if errorlevel 4 set foo & goto :foo
if errorlevel 3 set bar & goto :bar
if errorlevel 2 set quak & goto :quak
if errorlevel 1 set baz & goto :baz
[something something define %bark% from above]
rem overwrite file.png with new option
copy %src%\%bark%\file.png %des%\%quak%\file.png
По убыванию просто потому, что if errorlevel x
означает, что переменная errorlevel
больше , чем или равна до x
.
Второй, не очень распространенный способ, который используется для установки переменных, когда условие выполняется, заключается в следующем (обратите внимание, что здесь мы не обращаем внимания на порядок):
choice /N /C:1234 /M "Option: "
if %errorlevel% EQU 4 set foo & goto :foo
if %errorlevel% EQU 3 set bar & goto :bar
if %errorlevel% EQU 2 set quak & goto :quak
if %errorlevel% EQU 1 set baz & goto :baz
[something something define %bark% from above]
rem overwrite file.png with new option
copy %src%\%bark%\file.png %des%\%quak%\file.png
Здесь можно заменить EQU
на ==
, хотя это и не рекомендуется.
Обратите внимание, что если вы хотите установить переменных, если условиеЗначение true, используйте второй способ и установите переменные в формате set "var=value"
.
Например:
if %errorlevel% EQU 4 set "foo=1"
if %errorlevel% EQU 3 set "bar=2"
if %errorlevel% EQU 2 set "quak=3"
if %errorlevel% EQU 1 set "baz=4"
или как угодно.
Как не выполнять все4 if
s, вы можете добавить GoTo
здесь:
if %errorlevel% EQU 4 set "foo=1" & goto :foo
if %errorlevel% EQU 3 set "bar=2" & goto :bar
if %errorlevel% EQU 2 set "quak=3" & goto :quak
if %errorlevel% EQU 1 set "baz=4" & goto :baz
и заменить примеры подпрограмм фактическими именами.
Для получения дополнительной информации об используемых командах введитев cmd.exe
:
if /?
choice /?
set /?
goto /?