информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыЗа кого нас держат?Spanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Microsoft обещает радикально усилить... 
 Ядро Linux избавляется от российских... 
 20 лет Ubuntu 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / operating systems
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Писал я когда-то такую прогу, но сколько бы версий разных не... 03.02.05 11:38  Число просмотров: 2473
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman
<"чистая" ссылка>
> команда1
> команда2
>
> пауза <- не знаю как это организовать. Паузу на
> определенное время
>
> команда3
> .....

Писал я когда-то такую прогу, но сколько бы версий разных не было с разными методами задержки - она жрет процессорное время.
<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
<"чистая" ссылка>
1  |  2 >>  »  




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach