Как в батнике сделать задержку
Перейти к содержимому

Как в батнике сделать задержку

  • автор:

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

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

  • Выключение компьютера по расписанию
  • Восстановление файла конфигурации загрузки (BCD)
  • Низкоуровневое форматирование флешки
  • Восстановление MBR жёсткого диска
  • Создание, удаление и работа разделов флешки
  • Ротатор баннеров
  • Как включить и выключить гибернацию

Site

  • 301 редирект | Permanent Redirect
  • Права доступа (chmod) вида 777
  • Таблица символов Юникод в HTML
  • Якорь HTML | Закладка на веб-странице
  • Списки HTML
  • Списки HTML | Обтекание картинок
  • Списки HTML | Оформление маркеров (буллетов

Windows

  • Программы для выключения компьютера скачать
  • Выключение компьютера по расписанию
  • Задержка времени (пауза, тайм-аут) в бат-файле
  • Word и Excel | Автоматическая нумерация ячеек таблицы
  • Word | Разорвать и соединить таблицу
  • Word | Вставить диаметр, ударение, апостроф
  • Excel | Перенос строки в ячейке
  • Word | Убрать горизонтальную линию

Записки алкоголика

  • Позвонить оператору Водафон-Украина (МТС, UMC)
  • Водафон, Киевстар, Лайф | Код USSD-запросов
  • Заработок на буксах | Философия успеха
  • Заработок на буксах | Мифы и реальность

Задержка в сотых долях секунды на BAT-файлах

Стандартной команды задержки, типа sleep, в языке сценариев Windows не предусмотрено. Есть множество различных извращенных способов получить хоть какую-то задержку, например, через ping. Как сделать более точную задержку?

Предлагаю более точный способ задержки, использующий счетчик времени %time%, который позволяет производить замеры времени с точностью до сотых долей секунды.

Код, реализующий задержку в 10 секунд:

@ echo off :: Задержка в 10 секунд echo %time% echo Wait 10 seconds. call :sleep 1000 echo %time% pause exit /b :sleep :: Относительно точная пауза в сотых доля секунды setlocal call :gettick set /a finish=%errorlevel%+%1 if %finish% geq 8640000 set finish=0 :slplabel call :gettick if %errorlevel% lss %finish% goto slplabel endlocal & exit /b :gettick :: Количество сотых долей секунды, прошедших с начала дня setlocal for /f "tokens=1-4 delims=:," %%a in ("%time%") do ( set h=%%a set m=%%b set s=%%c set ms=%%d ) set /a tick=ms+s*100+m*6000+h*360000 endlocal & exit /b %tick%

Задержка реализована в виде подпрограммы :sleep, получающей единственный параметр — продолжительность задержки в сотых долях секунды. Точность задержки не идеальная, но весьма неплохая. Единственны косяк может возникнуть в момент перехода времени с 23:59 на 00:00.

Похожие статьи

  • CMD скрипт, запустить из memo
  • Массовая замена оригиналов фото копиями после сохранения в Photoshop
  • Команды Cmd в консоли Delphi
  • Чтение настроек из файла на CMD/BAT
  • Чтение из буфера обмена результата cmd
  • Перейти в самую новую папку с помощью BAT-файла
  • Как на BAT-файлах проверить пуста ли папка
  • Подсчет символов в строке ШЕЛ

Как создать батник для запуска программы с задержкой?

Приветствую друзья!

Коротко ответ:

Как создать батник для запуска программы с задержкой — в скрипте необходимо использовать timeout /t 5, где 5 — это количество секунд задержки.

Разбираемся

Что такое батник? Это файл, который представляет из себя скрипт, а точнее сценарий, где можно прописывать разные команды, которые будут выполняться по очереди.

Вообще в батнике можно многое писать, использовать даже циклы, но лично я этим не пользуюсь. В PowerShell еще больше возможностей.

Так вот, как поставить паузу или задержку в батнике? На самом деле просто. Итак, для примера я создам батник, который открывает окно Программы и компоненты. Сперва создаем текстовый файл, далее меняем в конце .txt на .bat. Чтобы были видны расширения файлов, нужно чтобы они были включены в настройках проводника (значок в панели управления).

Кстати вместо расширения bat можно использовать cmd.

Так вот, файл создан, нажимаем правой кнопкой по нему и выбираем пункт Изменить:

Теперь пишем внутри команду задержки (пять секунд) и команду запуска окна Программы и компоненты:

timeout /t 5
start appwiz.cpl

Закрываем файл и сохраняем изменения:

Теперь после запуска этого скрипта будет идти таймер на 5 секунд, а потом запустится команда:

Удачи и добра, берегите себя!

Как в батнике сделать задержку

Сообщения: 6021
Благодарности: 3491

Конфигурация компьютера
Процессор: Intel Core 2 Quad Q9300, 2500 MHz (7,5 x 333)
Материнская плата: Asus P5Q PRO
Память: Transcend 2048×2 4096 Мб (DDR2-1066 DDR2 SDRAM)
HDD: Seagate ST3250410AS (250 Гб, 7200 RPM, SATA-II) + STM31000528AS (1 Тб, 7200 RPM, SATA-II)
Видеокарта: Asus EAH3650 (RV635)
Звук: Realtek ALC1200 (встроенный)
Блок питания: ExeGate 350W
CD/DVD: Optiarc DVD RW AD-7170S
Монитор: Samsung SyncMaster 971P 19»
ОС: Windows 7 Ultimate SP1 (x64)
Индекс производительности Windows: 5,9
rem Задержка 5 секунд ping -n 6 localhost>Nul

число должно быть равно задержке+1
Это сообщение посчитали полезным следующие участники:

Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Сообщения: 446
Благодарности: 44

Еще можно версии посмотреть здесь
Пауза в пакетном файле
Это сообщение посчитали полезным следующие участники:

Сообщения: 1
Благодарности: 1

timeout /t xx
xx- время в секундах
Это сообщение посчитали полезным следующие участники:

Сообщения: 11
Благодарности: 0

Помогите исправить ошибку. Батник работает, но всплывает окно cmd, что нужно дописать чтоб не было никаких окон и подтверждений.
Код:
@echo off
timeout /t 10 /nobreak>nul
del C:\*.log

Сообщения: 992
Благодарности: 268

Super Nemo, на чистом cmd/bat — никак. Разве что запускать батник через vbs-скрипт.
Это сообщение посчитали полезным следующие участники:

Сообщения: 27449
Благодарности: 8086

Цитата Super Nemo:

@echo off
timeout /t 10 /nobreak>nul
del C:\*.log »

Сохраните в файл с расширением «.vbs»:

WScript.Sleep 10*1000 WScript.CreateObject("Scripting.FileSystemObject").DeleteFile "C:\*.log", True

и пользуйте вместо вышеприведённого кода пакетного файла.
Это сообщение посчитали полезным следующие участники:

Сообщения: 8595
Благодарности: 2127

Цитата Super Nemo:

что нужно дописать чтоб не было никаких окон и подтверждений »

Если отвлечься от весьма полезных возможностей VB-скриптов (вариант от Iska), то: Скрытие консольных окон

Это сообщение посчитали полезным следующие участники:

Сообщения: 11
Благодарности: 0

Скрипт работает как нужно(без окон). Спасибо. Маленький нюанс, батник предназначался в автозагрузку, для этого делалась задержка срабатывания. Скрипт будет работать при запуске системы?
PS: Огромная благодарность за такие оперативные ответы

Сообщения: 27449
Благодарности: 8086

Цитата Super Nemo:

Скрипт будет работать при запуске системы? »

Да. Достаточно просто создать ярлык на него в папке общей автозагрузки. Можно поместить его вызов в любое из прочих мест автозагрузки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *