Polecenia wstrzymywania i oczekiwania plików wsadowych: jak kontrolować przepływ skryptów

Polecenia Wstrzymywania I Oczekiwania Plikow Wsadowych Jak Kontrolowac Przeplyw Skryptow



W przypadku skryptów wsadowych w systemie Windows programiści mogą kontrolować przepływ skryptów, korzystając z różnych technik i metod wprowadzania pauz lub oczekiwań. Polecenia „pauza” i „czekaj” to dwa sposoby kontrolowania przepływu plików wsadowych. Polecenie „pauza” zatrzymuje wykonywanie pliku wsadowego podczas wyświetlania komunikatu „Naciśnij dowolny klawisz, aby kontynuować…”. Plik wsadowy nie może zostać uruchomiony, dopóki użytkownik nie naciśnie klawisza. Wykonywanie pliku wsadowego zostaje zawieszone na liczbę sekund wskazaną przez instrukcję Wait.

Polecenie wstrzymania pliku wsadowego

Polecenie „pause” pliku wsadowego zatrzymuje wykonywanie pliku wsadowego podczas wyświetlania komunikatu w wierszu poleceń. Plik wsadowy nie zostanie uruchomiony, dopóki użytkownik nie naciśnie klawisza. Pomocna jest komenda zatrzymująca kolejne wykonanie. Korzystne jest bezpośrednie uruchomienie pliku wsadowego i wyświetlenie żądanych wyników na ekranie.







Składnia polecenia „pauza” jest następująca:



Pauza

Monituj użytkownika o wprowadzenie danych

Polecenie „pauza” w poniższym skrypcie wsadowym powoduje wyświetlenie komunikatu „Naciśnij dowolny klawisz, aby kontynuować…”, gdy użytkownik uruchomi ten plik wsadowy. Zanim plik wsadowy przejdzie do polecenia „dir”, użytkownik musi nacisnąć klawisz.



@echo wyłączone

rem Ten plik wsadowy jest wstrzymywany, aby użytkownik mógł nacisnąć klawisz.

echo Witamy w demonstracji polecenia PAUSE.

echo Wykonywanie skryptu jest kontynuowane po pauzie.

pauza

rem Ten plik wsadowy jest kontynuowany z następnym poleceniem.

echo Dziękuję!

Ty





Gdy użytkownik naciśnie dowolny klawisz za pomocą klawiatury, proces wsadowy będzie kontynuowany:



Polecenie oczekiwania na plik wsadowy

Podany kod to plik wsadowy otwierający dwa programy: Notatnik i Paint. Kod jest następujący:

@echo wyłączone

echo Uruchamianie pierwszego programu.

START /B /CZEKAJ notatnik.exe

echo Notatnik pomyślnie otwarty w tle

echo Uruchamianie drugiego programu.

URUCHOM /CZEKAJ mspaint.exe

echo Farba została pomyślnie otwarta.

cmd /k

Pierwsza linia „@echo off” zapobiega wyświetlaniu poleceń w trakcie ich wykonywania w pliku wsadowym.

Użytkownik jest po prostu informowany, że uruchamiany jest pierwszy program, poprzez drugą linię, czyli „echo Uruchamianie pierwszego programu”.

Trzecia linia, „START /B /WAIT notepad.exe”, otwiera program Notatnik w oknie w tle i czeka na zakończenie przed kontynuowaniem. Przełącznik „/B” nakazuje poleceniu START uruchomienie programu w oknie w tle, a przełącznik „/WAIT” nakazuje poleceniu START zaczekanie na zakończenie programu przed kontynuowaniem.

Czwarta linia czyta Notatnik echa. Kiedy Notatnik zostanie pomyślnie otwarty w tle, powiadamia on jedynie użytkownika za pomocą komunikatu.

Piąta linia, „echo Uruchamianie drugiego programu”, po prostu wyświetla użytkownikowi komunikat, że rozpoczyna się drugi program.

Szósta linia „START /WAIT mspaint.exe” otwiera program Paint w oknie w tle i nie czeka na jego zakończenie przed kontynuowaniem.

Siódmy wiersz, „echo Farba została pomyślnie otwarta”, po prostu wyświetla użytkownikowi wiadomość, że farba została pomyślnie otwarta.

Ósmy wiersz, „cmd /k”, otwiera nowe okno wiersza poleceń i pozostawia otwarte okno bieżącego wiersza poleceń.

Używanie pętli do niestandardowych opóźnień

Możemy użyć pętli do niestandardowych opóźnień w procesie wsadowym. Oto przykład:

W tym przykładzie pierwszy komunikat jest wyświetlany użytkownikowi po uruchomieniu tego pliku wsadowego. Pierwszy komunikat zostanie wyświetlony ponownie po rozpoczęciu pętli „for”. Polecenie timeout zatrzymuje plik wsadowy na jedną sekundę przed wyświetleniem drugiego komunikatu. Ostateczny komunikat jest następnie wyświetlany po łącznie 10 iteracjach.

@echo wyłączone

echo Demonstracja opóźnienia przy użyciu pętli

for /l  %%i w (1,1,10) do (

limit czasu /t 1 /nobreak > nul

echo Ten komunikat wyświetla się po %%i  sekundach

)

echo Ten komunikat wyświetlił się z 10-sekundowym opóźnieniem.

Korzystanie z limitu czasu dla opóźnienia

Polecenie timeout pliku wsadowego wstrzymuje wykonywanie pliku wsadowego na określoną liczbę sekund. Składnia jest podana tutaj:

limit czasu /t [/nobreak]

Przełącznik „/t” określa czas oczekiwania w sekundach. Przełącznik „/nobreak” uniemożliwia użytkownikowi naciśnięcie klawisza w celu przerwania opóźnienia.

Polecenie „timeout” może zostać użyte do:

  • Odłóż wykonanie pliku wsadowego na określony czas
  • Zapobiegaj przerwaniu działania pliku wsadowego przez użytkownika
  • Stwórz bardziej przyjazne dla użytkownika środowisko, zapobiegając konieczności naciskania klawisza przez użytkownika, aby kontynuować

Na przykład następujący plik wsadowy zostanie wstrzymany na 10 sekund:

@echo wyłączone

echo Witam, wykonywanie skryptu jest kontynuowane po 10 sekundach opóźnienia

przekroczenie limitu czasu /t 10

echo Dziękuję!

Jak pokazano na poniższym zrzucie ekranu, licznik czasu jest uruchomiony i czeka, aż użytkownik przerwie polecenie „limitu czasu” poprzez naciśnięcie dowolnego klawisza. Jeśli użytkownik naciśnie dowolny klawisz, proces zatrzymuje się i przechodzi do następnego polecenia w pliku wsadowym:

Użytkownik na poniższym zrzucie ekranu przerywa polecenie „timeout” po 5 sekundach, co skutkuje wyświetleniem komunikatu „Dziękujemy!” wiadomość:

Poniższy zrzut ekranu pokazuje, jak działa funkcja „Dziękujemy!” wydruk komunikatu na ekranie zajmuje 10 sekund, jeśli użytkownik końcowy nie przerwie instrukcji przekroczenia limitu czasu:

Oto zaktualizowany kod, który został zmodyfikowany w celu uwzględnienia przełącznika no-break, który uniemożliwia użytkownikowi końcowemu przerwanie procesu pliku wsadowego:

@echo wyłączone

rem Ten plik wsadowy jest wstrzymywany na 10 sekund

echo Witam, wykonywanie skryptu jest kontynuowane po 10 sekundach opóźnienia

limit czasu /t 10 /nobreak

rem Po 10 sekundach to polecenie zostanie wyświetlone na ekranie zachęty

echo Dziękuję!

Oto wynik poprzedniego kodu:

Wiersz poleceń wyświetla monit o wpisanie Y lub N, jeśli użytkownik użyje polecenia „CTRL+C”. Jeśli użytkownik kliknie Y, to zadanie wsadowe zostanie zatrzymane:

Polecenia „pauza”, „czekaj” i „limit czasu” to sposoby kontrolowania przepływu naszych skryptów. Działanie skryptu zostaje zawieszone w przypadku użycia polecenia „pauza” i zatrzymane na określony czas w przypadku użycia polecenia „timeout”.

Używanie instrukcji warunkowych do sterowania przepływem

Instrukcje warunkowe są najpowszechniej wykonalną techniką stosowaną do modyfikowania przebiegu skryptu w oparciu o określone okoliczności. W zależności od tego, czy warunek jest prawdziwy, czy fałszywy, instrukcja „if” wykonuje jeden z dwóch fragmentów kodu. Instrukcja „if” ma następującą strukturę:

jeśli w przeciwnym razie

Przykład:

Otwórz Notatnik lub dowolny wybrany edytor tekstu i napisz poniższy kod, który inicjuje wartość zmiennej inputValue na 1 w trzeciej linii. Wartość zmiennej inputValue jest następnie sprawdzana za pomocą instrukcji „if” w czasie wykonywania, aby sprawdzić, czy jest równa 1, 2 czy 3. Jeśli tak, na ekranie wiersza poleceń wyświetlany jest odpowiedni komunikat. Jeżeli tak nie jest, wyświetlony zostanie ostatni komunikat. W instrukcji warunkowej znanej jako „if” sprawdzana jest wartość wejściowa zmiennej, aby sprawdzić, czy jest równa 1, 2 lub 3. Jeśli tak, wykonywany jest jeden z dwóch bloków kodu. Jeśli warunek jest prawdziwy, instrukcja warunkowa nie robi nic.

@echo wyłączone

rem Ten skrypt testuje zmienną inputValue względem wartości 1, 2 i 3.

ustaw wartość wejściową = 1

jeśli '%inputValue%'=='1' (

echo Wartość wejściowa jest równa 1.

) else jeśli '%inputValue%'=='2' (

echo Wartość wejściowa jest równa 2.

) else jeśli '%inputValue%'=='3' (

echo Wartość wejściowa jest równa 3.

) w przeciwnym razie (

echo Zmienna inputValue nie jest równa 1, 2 lub 3.

)

Wyjście:

Wniosek

Przepływ skryptów można kontrolować, a procesy można automatyzować w systemie operacyjnym Windows za pomocą poleceń, pętli i instrukcji warunkowych, takich jak „if”. Programiści mogą zatrzymać wykonywanie skryptu lub dodać opóźnienia za pomocą polecenia „pauza”, wykorzystując „limit czasu” lub „ping”. Chociaż w skryptach wsadowych nie ma wbudowanej instrukcji „switch”, możemy ją symulować za pomocą wyrażeń „if” i „else if”. Testowanie ma kluczowe znaczenie, aby upewnić się, że skrypty te działają zgodnie z zamierzeniami w odpowiednim kontekście. Skrypty te są przydatne do automatyzacji, zarządzania systemem i manipulacji plikami.