@narem

Почему не работает условие и не выводит результат?

@echo off
set /p option =
if '%option%' == '1' (goto ":math")
if '%option%' == '2' (start "test.txt")

:math
echo 2+2
pause


Срабатывает всегда 1 условие, даже когда ввожу 2.
Так же непонятно, как сделать так, что бы он считал 2+2 а не просто выводил
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 2
@res2001
Developer, ex-admin
1.Арифметические операции поддерживаются только в команде set /a (смотрите set /?)
2.Кавычки в условии должны быть двойные.
3.Поставьте после set /p вывод option (echo %option%), чтоб убедиться что в переменной содержится то значение, которое вы ввели с клавиатуры.
4.Метки в goto указываются без кавычек
5.На сколько я могу судить, вам нужно между вторым if и меткой сделать exit /b. Сейчас у вас код в метке в любом случае отработает, даже если вы введете 2 (в этом случае откроется файл test.txt и выведется 2+2).

PS: сейчас под рукой винды нет, протестировать ваш код не могу

@echo off
set /p "option="
if "%option%" == "1" (goto:math)
if "%option%" == "2" (start "test.txt")
exit /b

:math
set /a "val=2+2"
echo %val%
pause
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
@echo off

set /p option=Enter choice:
if '%option%' == '1' (goto math)
if '%option%' == '2' (
start "test.txt"
goto end
)

:math
set /a sum=2+2
echo %sum%
pause

:end
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы