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

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

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

echo wscript.Sleep 30000>"%temp%\sleep30.vbs"
cscript //nologo "%temp%\sleep30.vbs"
del "%temp%\sleep30.vbs"

Работает в любой ОС Windows, аж бегом

Зачем нужна задержка (пауза, тайм-аут) при выполнении команды в 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:\Windows\Prefetch &del *.pf 2>nul &cd/d C:\Windows\Temp&rd/s/q c:\windows\temp 2>nul

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

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

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

echo wscript.Sleep 30000>"%temp%\sleep30.vbs"
cscript //nologo "%temp%\sleep30.vbs"
del "%temp%\sleep30.vbs"
cmd /c title Очистка временной папки &cd/d %temp%&rd/s/q %temp% 2>nul &cd/d %tmp%&rd/s/q %tmp% 2>nul &cd/d C:\Windows\Prefetch &del *.pf 2>nul &cd/d C:\Windows\Temp&rd/s/q c:\windows\temp 2>nul

Прим. Лошади понятно, что изменив цифру 30 на своё значение,
можно получить другие величины паузы в секундах в bat-файле.

Начиная с VISTA, в операционных системах семейства Windows присутствует команда TIMEOUT. Эта команда принимает значение таймаута, равного фиксированному периоду времени ожидания (в секундах) до выполнения команды или ожидание до нажатия клавиши. Имеется также параметр, зaдающий игнорирование нажатий клавиш.

Синтаксис
TIMEOUT [/T] 50 [/NOBREAK]

Параметры

/T 50
Таймаут = 50 сек. Время ожидания в секундах. Допустимый интервал: от -1 до 99999 секунд. Значение, равное -1 задает неограниченное время ожидания до нажатия клавиши.
/NOBREAK
Игнорировать нажатия клавиш, ждать указанное время.
/?
Отображение справки в командной строке.

Примеры

TIMEOUT /?
TIMEOUT /T 10
TIMEOUT /T 300 /NOBREAK
TIMEOUT /T -1

Весь текст примера можно внести в bat-файл,
запустить и посмотреть, как это работает.
Впечатляет.

Ключевые слова статьи: Windows компьютер система

Поделиться ссылкой на статью в социальной сети, добавить в избранное или распечатать:
  1. <
    Гость

    22 февраля 2016 16:09

    Команда для паузы в 9 секунд:

    ping -n 10 localhost > Nul
  2. <
    Гость

    10 марта 2016 05:56

    А как из батника запустить командную строку и запуска выполнить команды, записанные в батнике?
  3. <
    Гость

    10 марта 2016 09:24

    Цитата: Гость
    А как из батника запустить командную строку и запуска выполнить команды, записанные в батнике?

    Не понятно. Вам нужна консоль командной строки?
    Команды, записанные в bat-файле выполняются после клика по нему.
  4. <
    Гость

    7 мая 2016 16:28

    А как делать задержку на десятые секунды?
  5. <
    Гость

    8 мая 2016 17:22

    Цитата: Гость
    А как делать задержку на десятые секунды?

    точка-десятая
    .5
    Прим. Лошади понятно, что изменив цифру 30 на своё значение,
    можно получить другие величины паузы в секундах в bat-файле.
    .5 - полсекунды
  6. <
    Гость

    24 июля 2016 17:13

    Вы же сказали что : интервал: от -1 до 99999 секунд . Вот все и подумали что нелзя менше число ставить и у вас спросили

Добавление комментария

Введите код: *
Кликните на изображение чтобы обновить код, если он неразборчив