Programem wsadowym nazywamy sekwencję poleceń systemu operacyjnego, umieszczoną w zbiorze tekstowym i przeznaczoną do wielokrotnego wykorzystywania. Programy mogą zawierać ( oprócz pleceń wsadowych ) instrukcje tzw. języka poleceń, który jest prostym językiem programowania, zawierającym niezbędne instrukcje sterujące. Instrukcje te pozwalają formułować zdania warunkowe, skoki, pętle, itp. W programach wsadowych można stosować zmienne i można im przekazywać parametry. Zbiory dyskowe zawierające programy wsadowe, mają zawsze rozszerzenie nazwy .BAT, a uruchamia się je, podobnie jak polecenia systemowe wpisując ich nazwę i naciskając klawisz ENTER.Polecenia:1. CALL [d:] [sc] plik [parametry] - wywołuje z programu przetwarzania wsadowego inny program przetwarzania wsadowego ( bez przerwania pracy bieżącego programu ).[d:] [sc] plik - lokalizacja i nazwa wywoływanego programu przetwarzania wsadowego ( z rozszerzeniem .BAT ).2. CHOICE [/c:lista] [/n] [/s] [ /t:znak, czas] [ tekst ] - pozwala użytkownikowi na wybór opcji z programu przetwarzania wsadowego./c:lista - określa listę znaków używanych przez użytkownika do dokonania wyboru/n - nakazuje nie wyświetlanie żadnych pytań/s - nakazuje rozpoznawanie małych i wielkich liter/t:znak, czas - program będzie oczekiwał na dokonanie wyboru przez ilość sekund, jeśli wybór nie zostanie dokonany to wybiera opcję określoną przez znak. Standardowo program czeka na dokonanie wyboru przez użytkownika.tekst - określa tekst wyświetlany na ekranie jako pytanie.3. ECHO on|off lub ECHO [ informacja ] - wyświetla na ekranie ( lub nie ) wykonywane w pliku przetwarzania wsadowego polecenia. Umożliwia także wyświetlanie na ekranie dowolnego tekstu. Znak @ umożliwia niewyświetlanie na ekranie polecenia echo off.on|off - powoduje wyświetlanie (on) na ekranie lub nie (off) nazw wykonywanych poleceń.ECHO. - wyświetla na ekranie pustą linię.4. FOR %% zmienna IN (zestaw) DO polecenie [parametry] - umożliwia wykonywanie danych poleceń dla każdego pliku z zadanego zestawu.%% zmienna - nazwa zmiennej, która będzie zastępowana danymi pobranymi z zestawu(zestaw) - określa zestaw plików ( lub wyrażeń tekstowych ), których ma dotyczyć polecenie FORpolecenie - określa polecenie, które ma być wykonywane z każdym plikiem zestawu.5. GOTO etykieta - powoduje skok programu do linii oznaczonej etykietą.etykieta - nazwa etykiety ( w programie typu .BAT musi być poprzedzona dwukropkiem ).6. IF [not] errorlevel numer polecenie - wykonywane jest polecenie gdy kod wyjścia z poprzednio uruchomionego przez COMMAND.COM programu jest większy od numer lub jemu równylubIF [not] ciąg1 = = ciąg2 polecenie - polecenie jest wykonywane jeśli ciągi są identycznelubIF [not] exist plik polecenie - warunek jest spełniony jeśli podany plik istnieje.7. PAUSE - zatrzymuje wykonywanie programu wsadowego i wyświetla komunikat Press any key to continue...8. REM [komentarz] - umożliwia wstawienie komentarza do pliku przetwarzania wsadowego.9. SHIFT - przesuwa parametry programu wsadowego o jedno miejsce.Przykłady programów wsadowych.1. :pętlaIF ‘’%1’’ = = ‘’ ‘’ GOTO koniecDIR %1SHIFTGOTO pętla:koniecWyświetla dowolne katalogi (należy je podać przy wywołaniu programu wsadowego), każdorazowo pobierany jest kolejny katalog z wprowadzonej przy wywołaniu listy. Po wyczerpaniu podanej listy katalogów spełniony zostaje warunek IF i następuje skok do etykiety :koniec.2. IF EXIST A: %1 GOTO komCOPY %1 A:GOTO koniec:komECHO Plik %1 już znajduje się na dyskietce A::koniecWyświetla tekst „Plik %1 już znajduje się na dyskietce A:” pod warunkiem, że plik podany jako parametr wywołania istnieje na dyskietce A:. Jeśli nie istnieje to zostanie na nią skopiowany.3. IF NOT EXIST A:%1.%3 COPY %1.%2 a:%1.%3Jeśli podamy jako kolejne parametry NOWYPLIK, TXT, OLD to polecenie to spowoduje skopiowanie pliku NOWYPLIK.TXT na dyskietkę A: pod nazwą NOWYPLIK.OLD, pod warunkiem, że taki plik nie istnieje na dyskietce.4. IF EXIST %1 GOTO istniejeECHO Plik %1 nie istnieje!!!GOTO koniec:istniejeFIND/I ‘’begin’’ <%1FIND/I ‘’end’’ <%1:koniecProgram ten wypisuje wiersze zawierające słowo ‘’begin’’, a następnie wiersze z wyrazem ‘’end’’, z pliku podanego jako parametr wywołania pod warunkiem, że plik ten istnieje.5. FOR %%x IN ( README.* *.DOC) DO MORE <%%xProgram ten wypisuje zawartość wszystkich plików README.* i *.DOC z katalogu bieżącego.6. :pętlaIF ‘’%1’’ = = ‘’ ‘’ GOTO koniecattrib -r %1DEL %1SHIFTGOTO pętla:koniecProgram ten usuwa pliki podane jako kolejne parametry wywołania, nawet wtedy, gdy mają atrybut „tylko do odczytu”.7. :pętlaDIR a:\%1 /b /s /pECHO Jeśli chcesz szukać dalej włóż nową dyskietkęECHO i naciśnij klawisz ‘t’.CHOICE /c:tn Szukać dalej?IF errorlevel2 GOTO koniecGOTO pętla:koniecProgram ten szuka pliku podanego jako parametr wywołania na dyskietkach kolejno wkładanych do napędu A: ( po umieszczeniu w stacji każdej kolejnej dyskietki program wyświetla pełne ścieżki dostępu wszystkich plików o podanej nazwie znajdujących się na dyskietce, a następnie pyta, czy kontynuować przeszukiwanie kolejnych dyskietek ).8. IF ‘’%TMP%’’ = = ‘’%TEMP%’’ GOTO takiesameECHO Przypisuję zmiennej TEMP wartość zmiennej TMPSET TEMP=%TMP% GOTO koniec:takiesameECHO Zmienne TMP i TEMP mają tą samą wartość:ECHO %TMP%:koniecProgram ten porównuje wartości zmiennych środowiskowych TMP i TEMP i jeśli są one równe wypisuje ich zawartość w przeciwnym przypadku przypisuje zmiennej TEMP wartość zmiennej TMP.9. SET ISTNIEJĄ=TAK:pętlaIF ‘’%1’’ = = ‘’ ‘’ GOTO KONIECIF NOT EXIST %1 SET ISTNIEJĄ=NIESHIFTGOTO pętla:koniecIF ‘’%ISTNIEJĄ%’’==’’TAK’’ GOTO dalejECHO Nie wszystkie z podanych plików istnieją.GOTO zakończ:dalejECHO Wszystkie podane pliki istnieją:zakończSET ISTNIEJĄ=Program ten informuje użytkownika, czy istnieją wszystkie pliki podane jako kolejne parametry wywołania.10. FOR %%x IN (*.TXT) DO COPY %%x A:Program ten powoduje przekopiowanie wszystkich plików o rozszerzeniu .TXT na dyskietkę w stacji A:
busi