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

Polecenie CALL - cmd (Windows)

Object Storage Arubacloud
+1 głos
541 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 (253,340 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ź 270 wizyt
pytanie zadane 20 września 2022 w Sieci komputerowe, internet przez jakwoz Nowicjusz (120 p.)
0 głosów
0 odpowiedzi 360 wizyt
pytanie zadane 21 grudnia 2020 w Systemy operacyjne, programy przez disaster Bywalec (2,120 p.)
0 głosów
1 odpowiedź 321 wizyt

92,573 zapytań

141,423 odpowiedzi

319,646 komentarzy

61,959 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...