If [not] ciag1==ciag2 komenda

If [not] ciag1==ciag2 komenda

Autor: Paweł Wujczyk

Opublikowano: 3/9/2006, 12:00 AM

Liczba odsłon: 27351

If [not] ciag1==ciag2 komenda - Instrukcja warunkowa, wykonująca komendę jeżeli ciag1 jest równy ciag2.

1: @echo off
2: if "%1"=="utworz" goto nowe
3:
if "%1"=="skasuj" goto skasuj
4:
goto help
5:
:nowe
6:
echo .>test.txt
7:
echo Plik zostal utworzony.
8:
goto end
9:
:skasuj
10:
del test.txt
11:
echo Plik zostal skasowany.
12:
goto end
13:
:help
14:
echo Nalezy podac parametr utworz lub skasuj.
15:
:end
16:
echo .

Program porównuje pierwszy parametr najpierw z wartością "utworz". Jeżeli porównanie jest prawdziwe zaczynają wykonywać się wiersze od piątego do ósmego. W linijce ósmej program przeskakuje na koniec do linijki piętnastej i wykonuje ostatnie polecenie, czyli wyświetlenie w linijce kropki, którą tu zastosowaliśmy dla większej przejrzystości. Jeżeli porównanie w wierszu drugim zwróci fałsz, następuje kolejne porównanie i następny przeskok. W wypadku, którym oba porównania nie zwrócą prawdy, czyli użytkownik nie poda żadnego parametru lub parametr poda błędnie, program wyświetli pomoc czyli wiersz czternasty. Bardzo często instrukcji porównania wykorzystuje się aby wybrać działanie programu w zależności od parametru.

Jeżeli rozszerzenia poleceń są włączone w instrukcji warunkowej można korzystać z bardziej złożonych poleceń decyzyjnych. Przedstawia je poniższa tabela.

EQU równe
NEQ nie równe
LSS mniejsze niż
LEQ mniejsze niż lub równe
GTR większe niż
GEQ większe niż lub równe

1: @echo off
2: if %1 leq 10 goto mniejsze
3:
echo liczba wieksza niz 10
4:
goto end
5:
:mniejsze
6:
echo liczba mniejsza lub rowna 10
7:
:end
8:
echo .

W tym programie za pomocą operatora leq sprawdzany jest pierwszy argument wywołania.

Nasz program nazywa się program.bat i znajduje się na dysku c:\. Uruchamiamy go wpisując w Wierszu polecenia jego nazwę czyli program. Wszystko co znajduje się pod pierwszą linijką C:\>program  zostało wygenerowane przez nasz program wsadowy. Używamy w programach komend, które zostały opisane wcześniej w tabeli. Jeżeli coś jest nie zrozumiałe należy cofnąć się do poprzednich objaśnień. W kodzie programu numerujemy linie aby prościej było źródło omawiać. W programach wsadowych zabronione jest numerowanie kolejnych wierszy.