информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetСтрашный баг в Windows
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / operating systems
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
рулез 09.02.05 21:03  Число просмотров: 2367
Автор: Killer{R} <Dmitry> Статус: Elderman
<"чистая" ссылка>
<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