Команды пакетной паузы и ожидания файла: как контролировать поток ваших сценариев

Komandy Paketnoj Pauzy I Ozidania Fajla Kak Kontrolirovat Potok Vasih Scenariev



При пакетном написании сценариев в Windows разработчики могут управлять потоком ваших сценариев, используя различные методы или методы для введения пауз или ожидания. Команды «пауза» и «ожидание» — это два способа управления потоком пакетных файлов. Команда «пауза» останавливает выполнение командного файла, отображая сообщение «Нажмите любую клавишу, чтобы продолжить…». Пакетный файл не может быть запущен, пока пользователь не нажмет клавишу. Выполнение пакетного файла приостанавливается на количество секунд, указанное инструкцией ожидания.

Команда приостановки пакетного файла

Команда «пауза» пакетного файла останавливает выполнение пакетного файла при отображении сообщения в командной строке. Пакетный файл не запустится, пока пользователь не нажмет клавишу. Команда, которая останавливает следующее выполнение, может оказаться полезной. Полезно запустить командный файл напрямую и увидеть желаемый результат на экране.







Синтаксис команды «пауза» следующий:



Пауза

Запросить у пользователя ввод данных

Команда «пауза» в следующем пакетном сценарии отображает сообщение «Нажмите любую клавишу, чтобы продолжить…», когда пользователь запускает этот пакетный файл. Прежде чем командный файл перейдет к команде «dir», пользователь должен нажать клавишу.



@эхо выключено

rem Этот пакетный файл приостанавливает работу, чтобы пользователь мог нажать клавишу.

echo Здравствуйте! Добро пожаловать на демонстрацию команды PAUSE.

echo Выполнение сценария продолжается после паузы.

Пауза

rem Этот пакетный файл продолжается следующей командой.

эхо Спасибо!

ты





Когда пользователь нажимает любую клавишу на клавиатуре, этот пакетный процесс продолжается:



Команда ожидания пакетного файла

Предоставленный вами код представляет собой пакетный файл, который открывает две программы: Блокнот и Paint. Код выглядит следующим образом:

@эхо выключено

echo Запуск первой программы.

ПУСК/B/WAIT notepad.exe

echo Блокнот успешно открыт в фоновом режиме

echo Запуск второй программы.

ПУСК / ОЖИДАНИЕ mspaint.exe

echo Краска успешно открыта.

cmd /к

Первая строка «@echo off» запрещает командному файлу отображать команды по мере их выполнения.

Пользователь просто информируется о том, что первая программа запускается, второй строкой, которая означает «эхо запуска первой программы».

Третья строка «START/B/WAIT notepad.exe» открывает программу «Блокнот» в фоновом окне и ожидает ее завершения, прежде чем продолжить. Переключатель «/B» сообщает команде START о необходимости запуска программы в фоновом окне, а переключатель «/WAIT» указывает команде START дождаться завершения программы, прежде чем продолжить.

Четвертая строка читает эхо-блокнот. Когда Блокнот успешно открывается в фоновом режиме, он просто уведомляет пользователя сообщением.

Пятая строка «echo Starting Second Program» просто отображает сообщение пользователю о том, что запускается вторая программа.

Шестая строка «START/WAIT mspaint.exe» открывает программу Paint в фоновом окне и не ждет ее завершения, прежде чем продолжить.

Седьмая строка «echo The Paint успешно открыта» просто показывает пользователю сообщение об успешном открытии Paint.

Восьмая строка «cmd /k» открывает новое окно командной строки и оставляет открытым текущее окно командной строки.

Использование цикла для пользовательских задержек

Мы можем использовать цикл для настройки задержек в пакетном процессе. Вот пример:

В этом примере первое сообщение отображается пользователю при запуске этого пакетного файла. Затем первое сообщение отображается еще раз, как только начинается цикл «for». Команда timeout останавливает пакетный файл на одну секунду перед отображением второго сообщения. Окончательное сообщение затем отображается после 10 итераций.

@эхо выключено

echo Демонстрация задержки с использованием цикла

для /l  %%i в (1,1,10) сделайте (

тайм-аут /t 1 /nobreak > ноль

echo Это сообщение отображается через %%i  секунд.

)

echo Это сообщение отображалось с задержкой в ​​10 секунд.

Использование тайм-аута для задержки

Команда timeout пакетного файла приостанавливает выполнение пакетного файла на заранее определенное количество секунд. Синтаксис приведен здесь:

тайм-аут /t [/nobreak]

Переключатель «/t» указывает время ожидания в секундах. Переключатель «/nobreak» отключает нажатие клавиш пользователем, чтобы прервать задержку.

Команда «timeout» может использоваться для:

  • Отложить выполнение пакетного файла на заданный период времени
  • Предотвратить прерывание пользователем действия пакетного файла
  • Создайте более удобный интерфейс, не позволяя пользователю нажимать клавишу для продолжения.

Например, следующий пакетный файл приостанавливается на 10 секунд:

@эхо выключено

echo Здравствуйте! Выполнение сценария продолжается после 10 секунд задержки.

таймаут /т 10

эхо Спасибо!

Как показано на следующем снимке экрана, таймер работает и ждет, пока пользователь прервет команду «тайм-аут», нажав любую клавишу. Если пользователь нажимает любую клавишу, процесс останавливается и переходит к следующей команде в пакетном файле:

Пользователь на следующем снимке экрана прерывает команду «тайм-аут» через 5 секунд, в результате чего отображается сообщение «Спасибо!» сообщение:

На следующем снимке экрана показано, как команда «Спасибо!» Сообщение печатается на экране в течение 10 секунд, если конечный пользователь не прерывает инструкцию таймаута:

Вот обновленный код, который был изменен и включает в себя непрерывный переключатель, который не позволяет конечному пользователю прервать процесс пакетного файла:

@эхо выключено

rem Этот пакетный файл приостанавливается на 10 секунд.

echo Здравствуйте! Выполнение сценария продолжается после 10 секунд задержки.

тайм-аут /t 10 /nobreak

rem Через 10 секунд эта команда отобразится на экране подсказки.

эхо Спасибо!

Вот вывод предыдущего кода:

Командная строка предлагает пользователю ввести Y или N, если пользователь использует команду «CTRL+C». Если пользователь нажимает Y, это пакетное задание останавливается:

Команды «пауза», «ожидание» и «тайм-аут» — это способы управления потоком наших сценариев. Запуск сценария приостанавливается при использовании команды «пауза» и останавливается на заданное время при использовании команды «тайм-аут».

Использование условных операторов для управления потоком

Условные операторы — это наиболее распространенный метод, который используется для изменения хода выполнения сценария в зависимости от определенных обстоятельств. В зависимости от того, является ли условие истинным или ложным, оператор «if» выполняет одну из двух частей выполнения кода. Оператор if имеет следующую структуру:

if <условие> else

Пример:

Откройте Блокнот или любой текстовый редактор по вашему выбору и напишите следующий код, который инициализирует значение переменной inputValue равным 1 в третьей строке. Затем значение переменной inputValue проверяется с помощью оператора «if» во время выполнения, чтобы определить, равно ли оно 1, 2 или 3. Если да, на экране командной строки выводится соответствующее сообщение. Если это не так, отображается последнее сообщение. В условном операторе, известном как «if», входное значение переменной проверяется на предмет того, равно ли оно 1, 2 или 3. Если да, то затем выполняется один из двух блоков кода. Если условие истинно, условный оператор ничего не делает.

@эхо выключено

rem Этот скрипт проверяет переменную inputValue на соответствие значениям 1, 2 и 3.

установить входное значение = 1

если '%inputValue%'=='1' (

echo Входное значение равно 1.

) иначе, если '%inputValue%'=='2' (

echo Входное значение равно 2.

) иначе, если '%inputValue%'=='3' (

echo Входное значение равно 3.

) еще (

echo Переменная inputValue не равна 1, 2 или 3.

)

Выход:

Заключение

Поток сценариев можно контролировать, а процессы можно автоматизировать в операционной системе Windows с помощью команд, циклов и условных операторов, таких как «if». Разработчики могут остановить выполнение сценария или добавить задержки с помощью команды «пауза», используя «тайм-аут» или «пинг». Хотя в пакетных сценариях нет встроенного оператора «switch», мы можем смоделировать его с помощью выражений «if» и «else if». Тестирование имеет решающее значение для обеспечения того, чтобы эти сценарии функционировали должным образом в соответствующем контексте. Эти сценарии полезны для автоматизации, управления системой и манипуляций с файлами.