Компьютерные уроки, статьи и советы по настройке компьютера и сетевой работе - создание, оптимизация и продвижение сайтов и блогов в Сети Интернет, программирование HTML, XHTML, CSS и ява-скрипт

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

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

Вот, нашёл в Сети рабочий пример для устройства задержки времени
(пауза, тайм-аут) при выполнении команды в 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-файл,
запустить и посмотреть, как это работает.
Впечатляет.

Комментарии (9)
  1. tehnopost.info
    Гость

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

    Гость

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

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

    ping -n 10 localhost > Nul

    ЦитироватьОтветить
  2. tehnopost.info
    Гость

    10 марта 2016 05:56

    Гость

    10 марта 2016 05:56

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

    ЦитироватьОтветить
  3. tehnopost.info
    Гость

    10 марта 2016 09:24

    Гость

    10 марта 2016 09:24

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

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

    ЦитироватьОтветить
  4. tehnopost.info
    Гость

    7 мая 2016 16:28

    Гость

    7 мая 2016 16:28

    А как делать задержку на десятые секунды?

    ЦитироватьОтветить
  5. tehnopost.info
    Гость

    8 мая 2016 17:22

    Гость

    8 мая 2016 17:22

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

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

    ЦитироватьОтветить
  6. tehnopost.info
    Гость

    24 июля 2016 17:13

    Гость

    24 июля 2016 17:13

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

    ЦитироватьОтветить
  7. tehnopost.info
    Гость

    11 декабря 2016 00:32

    Гость

    11 декабря 2016 00:32

    TIMEOUT /T 300 /NOBREAK так какойже ето метод если оно говорит нажать
    ctrl+c и закончить. Как сделать без етого

    ЦитироватьОтветить
  8. tehnopost.info
    Гость

    11 декабря 2016 12:55

    Гость

    11 декабря 2016 12:55

    Цитата: Гость
    TIMEOUT /T 300 /NOBREAK так какойже ето метод если оно говорит нажать
    ctrl+c и закончить. Как сделать без етого

    Сделать, как в начале статьи:
    echo wscript.Sleep 30000>"%temp%\sleep30.vbs"
    cscript //nologo "%temp%\sleep30.vbs"
    del "%temp%\sleep30.vbs"
    где, 30 - время в сек. Правда, 30 сек. будет висеть черное досовское окно.
    Работает в любой ОС Windows, аж бегом

    ЦитироватьОтветить
  9. tehnopost.info
    Гость

    17 декабря 2016 22:54

    Гость

    17 декабря 2016 22:54

    А если
    TIMEOUT /T 300 /NOBREAK >> NULL

    ЦитироватьОтветить

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

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