Setlocal - Informuje system, że zmiany dokonane przez program są lokalne.
Endlocal - Informuje system, o zakończeniu sekcji zmian lokalnych dokonanych przez program.
1:
@echo off
2: echo Zmienne systemowe:
3: echo %path%
4: echo .
5: setlocal
6: set path=c:\moje programy
7: echo Zmienne po zmianie:
8: echo %path%
9: echo .
10: endlocal
11: echo Zmienne systemowe:
12: echo %path%
13: echo .
Pisząc programy wsadowe często bardzo pomocne staje się zmienienie zmiennych systemowych. Pamiętać jednak musimy aby po zakończeniu programu przywrócić wcześniejsze ustawienia. Gdybyśmy tego nie zrobili inne aplikacje uruchamianie w systemie mogły by przestać działać prawidłowo. Komendy setlocal oraz endlocal zapewniają nam bezpieczeństwo w czasie pisania naszych programów. Mianowicie sprawiają, że wszystkie zmiany jakich dokonamy na zmiennych systemowych są lokalne i nie maja wpływu na ustawienia komputera po zakończeniu programu wsadowego. W naszym programie w wierszu trzecim, ósmym i dwunastym wyświetlamy zmienną systemową path. Zmieniamy ją w wierszu szóstym jednak zmiana ta nie jest zauważalna po zakończeniu programu ponieważ zastosowaliśmy dwie wyżej wymienione komendy. Przydatne zmienne systemowe zostały opisane tutaj
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.