Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | | |
Вот так, например, можно сделать паузу до определенного... 10.02.05 18:15 Число просмотров: 3079
Автор: guest Статус: Незарегистрированный пользователь
|
> Не очень то и рулез. Не столь удобно пользоваться - время > задавать. У меня чуть удобнее была. > % delay +3:20 > Делает задержку на 3 минуты 20 секунд. > % delay 15:45:00 > Делает задержку пока не наступит без пятнадцати четыре > после полудня.
Вот так, например, можно сделать паузу до определенного времени:
:loop
@ping -n 2 127.0.0.1 >nul
@time /t | find "%1"
@if errorlevel 1 goto :loop
Задержка (в секундах):
@ping -n 2 127.0.0.1 >nul
@ping -n %1 127.0.0.1 >nul
Извращаться можно до бесконечности и до нужной точности.
Собсна, каков был вопрос, таков и ответ :)
|
<operating systems>
|
[NT] Можно ли в бат файле организовать паузу на опред. время 03.02.05 10:50
Автор: IgorMan2 Статус: Незарегистрированный пользователь
|
команда1
команда2
пауза <- не знаю как это организовать. Паузу на определенное время
команда3
.....
|
|
ping -n ... 127.0.0.1 09.02.05 18:48
Автор: guest Статус: Незарегистрированный пользователь
|
|
| |
рулез 09.02.05 21:03
Автор: Killer{R} <Dmitry> Статус: Elderman
|
|
| | |
Не очень то и рулез. Не столь удобно пользоваться - время... 10.02.05 10:25
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 10.02.05 10:27 Количество правок: 1
|
Не очень то и рулез. Не столь удобно пользоваться - время задавать. У меня чуть удобнее была.
% delay +3:20
Делает задержку на 3 минуты 20 секунд.
% delay 15:45:00
Делает задержку пока не наступит без пятнадцати четыре после полудня.
Мне тут сразу же мысл пришла, что можно планировщиком попользоваться.
Разбивается пакетник на два - до задержки и после. Последней строкой первого пакетника будет запустить второй пакетник по истечении заданного времени.
Можно ограничиться одним пакетником и параметром воспользоваться, чтоб батнику дать понять, что нужно начать выполнение со второй секции сразу после команды задержки.
Если требуется чтоб выпонялся один и тот же пакетник, можно в нужное время используя планировщик запустить "command /c copy null semafor", а в самом пакетнике ждать его появления "label: if not exist semafor goto label".
Планировщик может запускать процесс как в заданное время, так и через заданный интервал времени.
|
| | | |
Вот так, например, можно сделать паузу до определенного... 10.02.05 18:15
Автор: guest Статус: Незарегистрированный пользователь
|
> Не очень то и рулез. Не столь удобно пользоваться - время > задавать. У меня чуть удобнее была. > % delay +3:20 > Делает задержку на 3 минуты 20 секунд. > % delay 15:45:00 > Делает задержку пока не наступит без пятнадцати четыре > после полудня.
Вот так, например, можно сделать паузу до определенного времени:
:loop
@ping -n 2 127.0.0.1 >nul
@time /t | find "%1"
@if errorlevel 1 goto :loop
Задержка (в секундах):
@ping -n 2 127.0.0.1 >nul
@ping -n %1 127.0.0.1 >nul
Извращаться можно до бесконечности и до нужной точности.
Собсна, каков был вопрос, таков и ответ :)
|
| | | |
IMHO рулез полный 10.02.05 12:50
Автор: NKritsky <Nickolay A. Kritsky> Статус: Elderman
|
А главное просто. Время задается с точностью до 1 миллисекунды при помощи параметра -w .
|
| | | | |
Тогда надо адрес несуществующий. 10.02.05 13:09
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 10.02.05 13:11 Количество правок: 1
|
Еще поддержка АйПи протокола системой потребуется, хотя это сейчас везде.
Может быть проблема, если кто-то по этому адресу начнет откликаться.
Ну и нельзя задать "задержка до 12:00", то есть до наступления полудня.
А так идея очень красивая.
|
| | | | | |
как раз таки существующий вполне сгодится 10.02.05 14:31
Автор: Killer{R} <Dmitry> Статус: Elderman
|
Винда чаще чем в 1 сек пинги не шлет. Ограничение вхардкоденное в ping.exe.
|
| | | | | | |
Я про -s параметр. Чтоб пинг ожидал нужное время ответ от... 10.02.05 15:43
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 10.02.05 15:44 Количество правок: 1
|
> Винда чаще чем в 1 сек пинги не шлет. Ограничение > вхардкоденное в ping.exe.
Я про -s параметр. Чтоб пинг ожидал нужное время ответ от хоста - хост должен не отвечать. Кроме того, не смотря на то, что парамет может быть любым и исчисляется в милисекундах, меньше секунды задержку времени задать достаточно точно не получится. Соответственно максимальная задержка - одна минута. В предположении того, что задержка будет задаваться порядка нескольких секунд или десятков секунд, точность в милисекунду не нужна. Лучше бы программеры дисретизацию посекундную сделали.
И чтоб параметр -s сработал, адрес должен принадлежать сети или должен быть указан шлюз, но ни один комп по этому адресу не должен откликаться.
|
| | | | | | | |
ыыыыыыыы.... 10.02.05 16:00
Автор: Killer{R} <Dmitry> Статус: Elderman
|
Причем тут параметр -s? Речь идет о том что
"ping -n 1 127.0.0.1" будет выполняцца 1 сек
"ping -n 5 127.0.0.1" будет выполняцца 5 сек
"ping -n 120 127.0.0.1" будет выполняцца 120 сек
|
| | | | | | | | |
Не совсем. Нужно ставить timeout+1. 10.02.05 17:46
Автор: guest Статус: Незарегистрированный пользователь
|
|
| | | | | | | | |
А какова максимальная погрешность? 10.02.05 16:22
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
|
| | | | | | | | | |
1 секунда ;-) 11.02.05 08:43
Автор: HandleX <Александр М.> Статус: The Elderman
|
|
|
А можно поинтересоваться, с какой целью? Если только для... 05.02.05 19:13
Автор: kaasnake Статус: Незарегистрированный пользователь
|
> команда1 > команда2 > > пауза <- не знаю как это организовать. Паузу на > определенное время > > команда3 > ..... А можно поинтересоваться, с какой целью? Если только для того, чтобы начать выполнение команды 3 после завершения выполнения команды 2, то
cmd.exe /c "Команда2"
|
|
[NT] Batch Enhancer подойдет? 04.02.05 19:50
Автор: JINN <Sergey> Статус: Elderman
|
> команда1 > команда2 > пауза <- не знаю как это организовать. Паузу на > определенное время > команда3 Поищи старую Symantec-овскую утилиту be.exe
Batch Enhancer, Norton Utilities 8.0, Copyright 1994 by Symantec Corp.
New commands to enhance batch files.
Там есть такое:
be delay /?
BE DELAY ticks (1 tick = 1/18 second)
Если не найдешь, могу мыльнуть. Размер 19,049 bytes
|
|
Писал я когда-то такую прогу, но сколько бы версий разных не... 03.02.05 11:38
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
> команда1 > команда2 > > пауза <- не знаю как это организовать. Паузу на > определенное время > > команда3 > .....
Писал я когда-то такую прогу, но сколько бы версий разных не было с разными методами задержки - она жрет процессорное время.
|
| |
Главное, чтобы руки росли нормально... ;) Сырец внутри... 09.02.05 21:43
Автор: kstati <Евгений Борисов> Статус: Elderman Отредактировано 09.02.05 22:17 Количество правок: 2
|
Доброго здоровья!
> Писал я когда-то такую прогу, но сколько бы версий разных > не было с разными методами задержки - она жрет процессорное > время. Главное, чтобы руки росли нормально... ;)
#include "windows.h"
#include "stdlib.h"
int main(int argc, char* argv[])
{
int WaitFor;
if (argc > 1) {
WaitFor = atoi(argv[1]);
if (WaitFor < 0) WaitFor *=-1;
::Sleep(WaitFor);
} else {
printf("Usage: sleep.exe timeout\nWhere \"timeout\" is the sleep time in miliseconds.\n(k)2005");
}
return 0;
}
---
|
| |
Неправда. Sleep() по определению не может жрать время 04.02.05 11:21
Автор: amirul <Serge> Статус: The Elderman
|
> Писал я когда-то такую прогу, но сколько бы версий разных > не было с разными методами задержки - она жрет процессорное > время. Точно так же как и все остальные Wait-функции
Просто на это время шедулер не отдает потоку кванты и все.
|
| | |
Сразу и всем. 04.02.05 15:45
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
|
> > Писал я когда-то такую прогу, но сколько бы версий > разных > > не было с разными методами задержки - она жрет > процессорное > > время. > Точно так же как и все остальные Wait-функции > Просто на это время шедулер не отдает потоку кванты и все.
Сразу и всем.
Поэтому и было несколько версий.
После изучения кода стандартной функции sleep() было обнаружено, что она пользуется стандартным таймером, но не перепрограммирует его, а просто опрашивает регистры таймера, ожидая нужного значения, расчитанного ранее. Для виндов - это постоянно вычисляющая что-то задача, которая сильно грузит процессор и плюёт на все остальные процессы, даже виндовые.
|
| | | |
Досовская была прога наверно 04.02.05 17:32
Автор: Killer{R} <Dmitry> Статус: Elderman
|
|
|
|