Polecenie CALL cmd(Windows)

0

Hej!

Mam problem z poleceniem CALL, zadanie to:

Napisać skrypt, który pobiera od użytkownika dwie liczby i sprawdza, czy są równe, a
jeśli nie to która z nich jest większa, wypisuje odpowiedni komunikat korzystając z:
CALL (Windows)

Mój skrypt:

 @echo off
 
set /p liczba_1="Podaj pierwsza liczbe: "
set /p liczba_2="Podaj druga liczbe: "
 
 
 
IF %liczba_1% == %liczba_2% CALL:rowne 
 
GOTO:EOF
 
:rowne
ECHO Podane liczby sa rowne, kontynuuje przetwarzanie.
GOTO:EOF
 
IF %liczba_1% > %liczba_2% CALL:wieksza_1
 
GOTO:EOF
 
:wieksza_1
ECHO Licza pierwsza jest wieksza
GOTO:EOF
 
IF %liczba_1% < %liczba_2% CALL:wieksza_2
 
:wieksza_2
ECHO Liczba druga jest wieksza
GOTO:EOF

Istnieje elif w tym przypadku? Domyślam się, że powinnam użyć if tylko raz :/ Jakieś wskazówki?

0
IF %liczba_1% GTR %liczba_2% (CALL:wieksza_1) ELSE (
IF %liczba_1% LSS %liczba_2% (CALL:wieksza_2) ELSE CALL:rowne
)
0
  1. Między GOTO a :EOF powinna być spacja, podobnie przy CALL. Nie jest to konieczne, ale podnosi czytelność kodu, no i większość osób tak robi.
  2. W linijce 8 wychodzisz z programu zawsze, kiedy liczby nie są równe
  3. Spróbuj użyć EXIT /B zamiast GOTO :EOF
  4. Generalnie, o ile to nie jest w zadaniu że trzeba użyć CALL, da się ten problem zrealizować w dużo prostszy sposób:
@echo off
set /p "a=Podaj pierwsza liczbe: "
set /p "b=Podaj druga liczbe: "
if %a% equ %b% echo Rowne.
if %a% gtr %b% echo Liczba 1 wieksza.
if %a% lss %b% echo Liczba 2 wieksza.
0
Manna5 napisał(a):
  1. Między GOTO a :EOF powinna być spacja, podobnie przy CALL

Może, ale nie musi

1 użytkowników online, w tym zalogowanych: 0, gości: 1