Bat файл ожидание нажатия клавиши

Задержка времени (пауза, тайм-аут) в бат-файле

Вот, нашёл в Сети рабочий пример для устройства задержки времени(пауза, тайм-аут) при выполнении команды в bat-файле:

Зачем нужна задержка (пауза, тайм-аут) при выполнении команды в bat-файле?

У всех – по-разному.Лично мне она (пауза) понадобилась вот для чего:

– Взял простенький bat-файл для очистки временных папок и бросил его в АВТОЗАГРУЗКУПрикололся, типа – чтобы этот батничек чистил временные каталоги при запуске системы.Текст батника вытащил из стандартного Total Commander-a:

cmd /c title Очистка временной папки &cd/d %temp%&rd/s/q %temp% 2>nul &cd/d %tmp%&rd/s/q %tmp% 2>nul &cd/d C:WindowsPrefetch &del *.pf 2>nul &cd/d C:WindowsTemp&rd/s/q c:windows emp 2>nul

Всё-бы ничего, да только такая процедура очистки временных папок при загрузке –сносит полезные файлы и система выдаёт окно ошибки

Досадно.Однако, устройство паузы в 30 сек. решило всю проблему.И система грузится, и папки темпов – чистятся.

Полный текст bat-файла стал теперь таким:

Использование pause

  • размер шрифта уменьшить размер шрифтаувеличить размер шрифта
  • Печать
  • Эл. почта

Pause позволяет остановить выполнение Bat-файла до нажатия клавиши на клавиатуре. Это может быть полезно, например, если Вы хотите, чтобы пользователь подтвердил выполнение какого-то действия нажатием на клавишу. То есть, что он в своем уме и осознает, что происходит.

Смотрим пример, который копирует файл на дискету.

В момент выполнения программа остановится.

А после нажатия скопируется. Но на экране останется окно.

Если Вы не хотите чтобы оно было, вызовите последней командой cls

Использование windows script host (wsh)

Пример скрипта на JScript (sleep.js):

WScript.Sleep(WScript.Arguments(0))

Использование:

cscript //nologo sleep.js [milliseconds]

где [milliseconds] – желаемое число миллисекунд (1/1000 секунды).

Пример совмещения cmd-скрипта с js-скриптом в одном гибридном скрипте (sleep-js.cmd):

:/>  Хамачи зайти в аккаунт

Команда ping

ping -n seconds 127.0.0.1 > nul

где seconds – желаемое число секунд 1. Строго говоря, неизвестно, сколько на самом деле длится пауза между пингами, хотя предположительно – одну секунду. Паузу в одну секунду задать не получится, поскольку пинг проходит моментально. Справка по команде: ping /?.

Пакетный файл

Использование (пауза на 1-60 секунд):

call :sleep [пауза]

Пример:

Утилита nircmd

Сайт утилиты Nircmd

nircmd wait [milliseconds]

где [milliseconds] – желаемое число миллисекунд (1/1000 секунды). Oб использовании NirCmd также рассказывается в статье Создание ярлыков при установке системы

Утилита sleep.exe

sleep [seconds]

где [seconds] – желаемое число секунд.

Sleep.exe в ZIP-архиве