• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Polecenie CALL - cmd (Windows)

+1 głos
956 wizyt
pytanie zadane 23 stycznia 2021 w Inne języki przez Jagoda Z Kochowa Nowicjusz (130 p.)
edycja 23 stycznia 2021 przez Jagoda Z Kochowa

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?

 

1 odpowiedź

0 głosów
odpowiedź 24 stycznia 2021 przez VBService Ekspert (256,580 p.)
edycja 24 stycznia 2021 przez VBService

Problem jest w użyciu znaków "<" i ">", są one w dos-ie wykorzystywane podobnie jak ">>" "<<" w c++ wink. Użycie znaku "==" w pewnym sensie działa, ale lepiej jest zamienić według:

EQU : Equal  ==
NEQ : Not equal  !=

LSS : Less than  <
LEQ : Less than or Equal  <=

GTR : Greater than  >
GEQ : Greater than or equal  >=

This 3 digit syntax is necessary because the > and <
symbols are recognised as redirection operators

czyli np.: wink
call-demo.cmd

@echo off
 
set /p liczba_1="Podaj pierwsza liczbe: "
set /p liczba_2="Podaj druga liczbe: "
 
IF %liczba_1% EQU %liczba_2% CALL:rowne
IF %liczba_1% GTR %liczba_2% CALL:wieksza_1
IF %liczba_1% LSS %liczba_2% CALL:wieksza_2

PAUSE 
EXIT
 
:rowne
ECHO.
ECHO Podane liczby sa rowne.
GOTO:ANY_KEY
 
:wieksza_1
ECHO.
ECHO Liczba pierwsza jest wieksza
GOTO:ANY_KEY
 
:wieksza_2
ECHO.
ECHO Liczba druga jest wieksza

:ANY_KEY
ECHO.
PAUSE
EXIT

 

Podobne pytania

0 głosów
1 odpowiedź 601 wizyt
pytanie zadane 20 września 2022 w Sieci komputerowe, internet przez jakwoz Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 652 wizyt
pytanie zadane 21 grudnia 2020 w Systemy operacyjne, programy przez disaster Bywalec (2,120 p.)
0 głosów
1 odpowiedź 737 wizyt

93,759 zapytań

142,716 odpowiedzi

323,364 komentarzy

63,357 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...