1

Тема: CMD/BAT: Переменные

Должна выводиться консоль, куда мы будем записывать два числа. Если два числа записаны = выводит happy end. Если строка пуста - absent. Так же должен создаваться лог файл с ответом. variable1 + variable2
Помогите решить ошибки кода.


echo %0
echo %1
echo %2
if (%1% ==) goto label_1
if (%2% ==) goto label_2
set p1=%1
set p2=%2
set /A p3=p1+p2
echo %p3% > 0_Log1.txt
goto label_2
: label_1
echo %absent
goto label_3
: label_2
echo %happy end
: label_3

2

Re: CMD/BAT: Переменные

Ошибки в команде IF: подумай, зачем ты взял условие в скобки и зачем добавил знак процента после аргумента. Читай справку по команде

if /?

3

Re: CMD/BAT: Переменные

Мальчик-гей
это лаба, код которой дали с ошибками

4

Re: CMD/BAT: Переменные

Мальчик-гей
убрав проценты после аргументов и скобки в if - бат все равно не работает должным образом.


echo %0
echo %1
echo %2
if %1 == goto label_1
if %2 == goto label_2
set p1=%1
set p2=%2
set /A p3=p1+p2
echo %p3% > 0_Log1.txt
goto label_2
: label_1
echo %absent%

goto label_3
: label_2
echo %happy end%
: label_3

Даже лог файл перестал создаваться.

5

Re: CMD/BAT: Переменные

Мальчик-гей
Работает, вот только когда я оставляю строчку пустой - строка absent не выводится на экран

6 (изменено: Мальчик-гей, 2021-09-18 16:50:15)

Re: CMD/BAT: Переменные

moneymagoggang, если хотя бы одна из сравниваемых строк пустая, возникает синтаксическая ошибка. Чтобы избежать этого, можно, например, взять их в кавычки:

if "%1" == "" goto label_1

7

Re: CMD/BAT: Переменные

Мальчик-гей
Спасибо! Только теперь в любом случаи сначала показывает absent, а потом happy end . Мне нужно сделать разветвление. Прошу прощение, что задаю, возможно  глупые вопрос. Реально тяжело доходит

8

Re: CMD/BAT: Переменные

После команды, выводящей absent (почему в %%, это же не переменная), добавьте команду перехода в конец командного файла или выхода:


goto /?
exit /?