Program oddany użytkownikowi w piątek wraca do autora w poniedziałek.
MS-DOS - zadania wsadowe (pliki BAT)
call  |   choice  |   echo  |   exit  |   for  |   goto  |   if  |   shift
Przykład  |   Przykład użycia FOR  |   Przykład użycia CHOICE  |   Parametry

Wywołuje jeden program wsadowy z innego

CALL [dysk:][ścieżka]nazwa_pliku [parametry]

parametry parametry wymagane w wierszu polecenia przez dany program wsadowy

Po wykonaniu wywołanego programu wsadowego sterowanie przechodzi do następnego polecenia w programie wywołującym.

Czeka aż użytkownik wybierze jeden z zestawów wyborów

CHOICE [/C[:]wybory][/N] [/S] [/T[:]z,nn] [tekst]

/C[:]wybory lista dozwolonych klawiszy (domyślnie: TN)
/N nie wyświetla wyborów i znaku ? na końcu monitu
/S rozróżnia wielkie i małe litery w klawiszach wyboru
/T[:]z,nn domyślny wybór z po nn sekundach
tekst monit do wyświetlenia

Parametrowi ERRORLEVEL jest nadawana wartość odpowiadająca numerowi klawisza naciskanego przy wyborze.

Wyświetla komunikaty lub włącza/wyłącza wyświetlanie poleceń

ECHO [ON | OFF]

ECHO [komunikat]

ECHO [.]

ECHO bez parametrów wyświetla bieżące ustawienie polecenia.
ECHO . wyświetla pusty wiersz.

Przerywa bieżący skrypt wsadowy [od Windows 2000]

EXIT

Wykonuje określone polecenie dla wszystkich plików ze zbioru plików

FOR %zmienna IN (zbiór) DO polecenie [parametry]

%zmienna parametr wymienny
(zbiór) zbiór - jeden lub kilka plików; używanie symboli wieloznacznych jest dozwolone
polecenie polecenie, które ma być wykonane dla każdego pliku
parametry parametry lub opcje dla określonego polecenia>

Aby użyć polecenia FOR w programie wsadowym, wpisz %%zmienna zamiast %zmienna. W nazwach zmiennych rozróżnia się małe i wielkie litery, tak więc %i różni się od %I.

Kieruje program do oznaczonego etykietą wiersza w programie wsadowym

GOTO etykieta

etykieta ciąg tekstowy używany w programie wsadowym jako etykieta

Etykietę należy wpisać w oddzielnym wierszu zaczynającym się od dwukropka.

Wykonuje warunkową instrukcję w programach wsadowych

IF [NOT] ERRORLEVEL liczba polecenie

IF [NOT] ciąg1==ciąg2 polecenie

IF [NOT] EXIST nazwa_pliku polecenie

NOT system ma wykonać polecenie tylko wtedy, gdy warunek nie jest spełniony
ERRORLEVEL liczba prawda, jeśli ostatnio wykonany program zwrócił kod błędu równy lub większy od podanej liczby
ciąg1==ciąg2 prawda, jeśli podane ciągi tekstowe są identyczne
EXIST nazwa_pliku prawda, jeśli plik o nazwie nazwa_pliku istnieje
polecenie polecenie wykonywane, jeśli warunek jest spełniony

Przykłady:

   IF EXIST nazwa_pliku del nazwa_pliku
   IF ERRORLEVEL 3 goto okay
   IF (%1)==() 3 goto koniec

Przesuwa parametry w pliku wsadowym o jedną pozycję w lewo

SHIFT

Zmienia pozycję parametrów programu wsadowego, co pozwala na stosowanie więcej niż 10 podstawowych. Programy wsadowe obsługują 9 parametrów (od %1 do %9), podawanych przy uruchamianiu, po nazwie pliku oddzielonych od siebie spacją. Nazwa pliku jest oznaczana jako parametr 0 - %0. Po poleceniu SHIFT parametr %0 jest zapominany, jego miejsce zajmuje %1. Natomiast parametrem %1 zostaje dawny %2 itd. (Wartości parametrów przesuwane są w lewo). %9 przyjmuje wartość %10 - nieużywanego, ale pamiętanego.

Przykład:

   Plik.bat bat com exe      - Uruchomienie programu z trzema parametrami

   :KOPIOWANIE
   If "%1"=="" GOTO END   - Jeżeli nie ma parametru %1, przeskok do etykiety END
   COPY A:\*.%1 C:\       - Kopiowanie plików z rozszerzeniem określonym parametrem %1
   SHIFT                  - Przesunięcie parametrów.
   GOTO KOPIOWANIE

   :END

Przykłady użycia poleceń w zadaniach wsadowych:

   @ECHO OFF
              polecenie umieszczone zazwyczaj na początku pliku wsadowego powoduje,
              że nie są wyświetlane polecenia zadania oraz samo polecenie ECHO
 
  @
              analogicznie do ECHO OFF, jednak odwołuje się tylko do linii,
              którą poprzedza

   IF EXIST c:\plik.txt DEL c:\ plik.txt
              jeżeli istnieje c:\plik.txt, to jest kasowany

   IF NOT EXIST c:\katalog\NUL MD c:\katalog
              jeżeli nie istnieje c:\katalog, to jest zakładany

   IF "%1"=="*.*" GOTO ALL
              jeżeli 1-szym parametrem linii wywołania jest *.*,
              to przejście do etykiety ALL

   CHOICE /C:JDT Jeden Dwa Trzy /N /T:J,20
   IF ERRORLEVEL 3 GOTO TRZY
   IF ERRORLEVEL 2 GOTO DWA
   IF ERRORLEVEL 1 GOTO JEDEN
               wyświetlenie komunikatu: Jeden Dwa Trzy i przejście
               do odpowiedniej etykiety w zależności od wciśniętego klawisza
               (J - JEDRN, D - DWA, T - TRZY).
               Jeśli  przez 20 sekund nie zostanie wciśnięty żaden klawisz,
               to zadanie przejdzie do etykiety JEDEN

Przykłady użycia polecenia FOR w zadaniu wsadowym:

Wykonanie polecenia TYPE dla plików z rozszerzeniem .DOC i .DOT:

   FOR %%M IN (*.DOC *  .DOT) DO TYPE %%M

Usunięcie wszystkich plików z rozszerzeniem BAK w bieżącym katalogu:

   FOR %%X IN (*.BAK) DO del %%X  

Wyświetlenie 5 linii z napisem linia nr (1-5):

   FOR %%A IN (1 2 3 4 5)  DO echo linia nr %%A  

Wydrukowanie wszystkich plików *.PRN z katalogu głównego dysku C:

   FOR %%i IN (C:\*.PRN) DO PRINT %%i

Zakładanie 3 katalogów o ile już nie istnieją:

   FOR %%i IN (Jeden Dwa Trzy) DO IF NOT EXIST %%i\NUL MKDIR %%i

Przykład programu wsadowego z wykorzystaniem polecenia CHOICE w celu wybrania jednego z trzech programów:

   @echo off
   cls
   echo.
   echo A  Program nr 1
   echo B  Program nr 2
   echo C  Program nr 3
   echo.
   choice /c:abc Wybierz opcję

   if errorlevel 3 goto Program_1
   if errorlevel 2 goto Program_2
   if errorlevel 1 goto Program_3

   :Program_1
   program_1
   goto Koniec

   :Program_2
   program_2
   goto Koniec

   :Program_3
   program_3

   :Koniec


PARAMETRY

Pliki wsadowe mogą być wywoływane z parametrami:

   PLIK.BAT Parametr1 Parametr2 ...

   Np.:    Plik.bat AA BBB

   Przykłady użycia parametrów w zadaniu wsadowym:
   IF %1==wartość GOTO etykieta          sprawdzenie czy parametr pierwszy %1 równa
                                         siędanej wartości. Jeżeli plik został 
                                         wywołany bez parametrów, linia ta spowoduje
                                         wypisanie błędu składni
   IF "%1"=="wartość" GOTO etykieta      analogicznie do poprzedniego,
                                         ale brak parametru nie spowoduje błędu
   IF %1X==X komenda                     jeżeli program został wywołany bez parametrów,
                                         wykonywana jest komenda
   IF "%1"=="" komenda                   jak wyżej
   COPY A:\%1 C:\                        wykorzystanie parametru do operacji kopiowania
« wstecz   dalej »