Aby wstrzymać działanie programu zapisanego w pliku wsadowym Windows, do momentu naciśnięcia dowolnego klawisza, należy użyć komendy
A. stop
B. pause
C. echo off
D. echo on
Pytanie z egzaminu CKE, styczeń 2016 (arkusz E.12-X-16.01).
Komenda pause jest właściwa, bo w pliku wsadowym Windows zatrzymuje wykonywanie skryptu do momentu naciśnięcia dowolnego klawisza przez użytkownika. W praktyce po jej użyciu w konsoli pojawia się komunikat w stylu: Naciśnij dowolny klawisz, aby kontynuować... Dzięki temu można spokojnie przeczytać wynik działania wcześniejszych poleceń, na przykład listę skopiowanych plików, komunikat o błędzie albo rezultat konfiguracji sieci. Moim zdaniem to jedna z tych prostych komend, które bardzo ułatwiają testowanie skryptów BAT i CMD, szczególnie początkującym administratorom Windows. Typowy przykład to skrypt, który wykonuje kopię plików, uruchamia polecenie ipconfig, a potem kończy się tak szybko, że okno konsoli znika. Dodanie pause na końcu pozwala zobaczyć, co faktycznie się stało. Dobra praktyka jest taka, żeby stosować pause głównie w skryptach uruchamianych ręcznie, diagnostycznych lub szkoleniowych. W automatyzacji, np. w Harmonogramie zadań, używa się jej ostrożnie, bo może niepotrzebnie zablokować dalsze wykonanie procesu.
W plikach wsadowych Windows łatwo pomylić komendy sterujące wyglądem konsoli z komendami sterującymi przebiegiem programu. Polecenia echo off i echo on dotyczą przede wszystkim wyświetlania poleceń w oknie wiersza polecenia. Gdy używa się echo off, skrypt nie pokazuje każdej wykonywanej linijki, tylko same wyniki lub komunikaty przygotowane przez autora. To często spotykane na początku plików BAT, zwykle jako @echo off, żeby skrypt wyglądał czyściej i bardziej profesjonalnie. Echo on robi rzecz odwrotną, czyli włącza pokazywanie wykonywanych poleceń. Przydaje się czasem przy debugowaniu, ale nie zatrzymuje działania skryptu i nie czeka na reakcję użytkownika.
Stop brzmi intuicyjnie, bo po angielsku oznacza zatrzymanie, ale w klasycznym pliku wsadowym Windows nie jest standardową komendą służącą do wstrzymania wykonania do naciśnięcia klawisza. Taki błąd wynika często z myślenia potocznego: skoro chcę zatrzymać program, to wpisuję stop. W administracji systemami trzeba jednak trzymać się składni konkretnego interpretera poleceń, w tym przypadku cmd.exe. Do chwilowego wstrzymania skryptu i oczekiwania na dowolny klawisz służy pause. Warto też pamiętać, że jeśli celem jest zakończenie skryptu, używa się raczej exit lub goto :eof, a jeśli chcemy opóźnienie czasowe, można użyć timeout. To są różne mechanizmy i mieszanie ich potrafi potem robić bałagan w automatyzacji.
Stop brzmi intuicyjnie, bo po angielsku oznacza zatrzymanie, ale w klasycznym pliku wsadowym Windows nie jest standardową komendą służącą do wstrzymania wykonania do naciśnięcia klawisza. Taki błąd wynika często z myślenia potocznego: skoro chcę zatrzymać program, to wpisuję stop. W administracji systemami trzeba jednak trzymać się składni konkretnego interpretera poleceń, w tym przypadku cmd.exe. Do chwilowego wstrzymania skryptu i oczekiwania na dowolny klawisz służy pause. Warto też pamiętać, że jeśli celem jest zakończenie skryptu, używa się raczej exit lub goto :eof, a jeśli chcemy opóźnienie czasowe, można użyć timeout. To są różne mechanizmy i mieszanie ich potrafi potem robić bałagan w automatyzacji.