Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Windows > Сделать паузу в bat-файле


Автор: batigoal 3.1.2007, 12:30
Задача: обеспечить минутную задержку в процессе работы bat-файла.

Соответствующей команды не нашел. Как я понял, pause работает не так.

Автор: bilbobagginz 3.1.2007, 13:16
ответ по-еврейски: А на фига нам ждать 1 минуту ? smile

или можно:
1. установить какую-то POSIX подсистему, и там есть sleep ( есть msys/mingw/cygwin, и есть от микрософта unix 4 windows .. )
2. установить виндовый powershell ( некое расширение простого cmd.exe ), тоже с мс сайта, там есть sleep тоже
3. если надо на неизвестных машинах клиентов всё это делать - пиши элементарную прогу на C/C++. тоже не трудно.
4. переписывай скрипт на python/PERL


Автор: batigoal 3.1.2007, 21:39
Цитата(bilbobagginz @  3.1.2007,  14:16 Найти цитируемый пост)
ответ по-еврейски: А на фига нам ждать 1 минуту ?

Ситуация такая: при входе юзера в Windows нужно запустить батник, который загасит некоторые сервисы. Я сейчас делаю это через автозапуск (там висит ярлык на бат-файл. Проблема в том, что если юзер залогинится сразу после старта машины, то некоторые из них еще не успеют запуститься. Если же, например, повисеть после запуска винды в окне логина еще одну минутку, то все уже успеет стартовать, и при логине убьется.
Цитата(bilbobagginz @  3.1.2007,  14:16 Найти цитируемый пост)
1. установить какую-то POSIX подсистему, и там есть sleep ( есть msys/mingw/cygwin, и есть от микрософта unix 4 windows .. )

Тяжеловато для такой задачки... Пойду либо вторым, либо четвертым путем. Спасибо за подсказку.

Цитата(bilbobagginz @  3.1.2007,  14:16 Найти цитируемый пост)
если надо на неизвестных машинах клиентов всё это делать

Нет, это только на моей.

Автор: Fedor 3.1.2007, 22:42
Цитата(batigoal @  3.1.2007,  21:39 Найти цитируемый пост)
Если же, например, повисеть после запуска винды в окне логина еще одну минутку

Бати, ты конечно извини, но я бы если бы вдруг не дай бог сел за такую машину, сделал бы следующие вещи:
1) где-то на 15-ой секунде подумал бы что машина висит и перегрузил бы ее нафик
2) когда при повторной загрузке это действо повторяется, возможно бы дождался окончания, после чего с чистой совестью удалил бы нафик этот бат-файл и все его нечистые вхождения в автоекзек.

Я конечно не спец, но ИМХО надо искать концептуально иное решение.

Автор: batigoal 3.1.2007, 22:52
Федор, так это моя домашняя машина, и событие это будет происходить при лично моем логине smile

Хотя, в целом, ты прав. Наверное, это все-таки через ж... Возможно, лучше будет сделать ручной запуск сервисов, и стартовать их по необходимости из bat-файла. Это все-таки менее криво.

Автор: LesnoyChelovek 3.1.2007, 23:50
А вот функции типа sleep или timer? Поищи в справке по консольным командам - там точно написанно.

Автор: dumb 4.1.2007, 07:39
Код

ping 127.0.0.1 -n 61 > nul 2>&1

Автор: bilbobagginz 4.1.2007, 11:06
Цитата

Ситуация такая: при входе юзера в Windows нужно запустить батник, который загасит некоторые сервисы. 


немного непонятно. 
значит во-первых ... ты зачем-то админом компутер юзаешь
во-вторых, если при входе в машину тебе нужно загасить какие-то сервисы..... можно поподробнее ?


Автор: ivashkanet 4.1.2007, 11:38
batigoal, а почему бы их не отрубить вручную?

Правая кнопка на Моем компьютере, Управление, Сервисы, свойство конкретного сервиса, тип запуска -- вручную smile

Автор: batigoal 4.1.2007, 11:46
Цитата(bilbobagginz @  4.1.2007,  12:06 Найти цитируемый пост)
значит во-первых ... ты зачем-то админом компутер юзаешь

Да.

Цитата(bilbobagginz @  4.1.2007,  12:06 Найти цитируемый пост)
во-вторых, если при входе в машину тебе нужно загасить какие-то сервисы..... можно поподробнее ?

Конечно, можно. При старте машины на ней поднимается Оракл (10g Express). Если в систему залогинивается сестра - то ей он нафиг не нужен. И я собирался делать при ее логине вызов Stop Database (с помощью батника из Оракловой установки), причем ловил вышеописанную проблему.
Но, подумав немного, решил, что, видимо, правильнее будет сделать наоборот - сделать сервисы с ручным запуском и поднимать оракл при моем логоне.

Добавлено @ 11:47 
ivashkanet, про эту штуку я знаю, просто хотелось обойтись стандартными оракловыми процедурами, без самодеятельности.

Автор: ivashkanet 4.1.2007, 12:03
Цитата(batigoal @  4.1.2007,  10:46 Найти цитируемый пост)
без самодеятельности

А по мне то чем занимаешься ты --- самодеятельность smile
Подождать пока запустятся службы, а потом их грохнуть  smile

Вот интересно, а разве нельзя настроить старт сервисов для конкретного юзверя? ИМХО, можно, но вот как smile

Автор: batigoal 4.1.2007, 12:23
Цитата(ivashkanet @  4.1.2007,  13:03 Найти цитируемый пост)
ИМХО, можно, но вот как smile 

Один из вариантов - такой же батник с net start smile .

Цитата(ivashkanet @  4.1.2007,  13:03 Найти цитируемый пост)
А по мне то чем занимаешься ты --- самодеятельность

Ну, это все-таки штатные средства.

Автор: bilbobagginz 4.1.2007, 13:48
Цитата

Но, подумав немного, решил, что, видимо, правильнее будет сделать наоборот - сделать сервисы с ручным запуском и поднимать оракл при моем логоне.

теперь уже логичнее smile

можно даже яго в Programs->Startup перетащить тогда только под твоим юзверем он и будет подинматься ( не в ручную - автоматом )

имхо - приятнее.

Кстати, если у тебя дома - домен NT или AD, можно всё это сделать как logon script под твоего юзера.



пока.

Автор: batigoal 4.1.2007, 17:23
Цитата(bilbobagginz @  4.1.2007,  14:48 Найти цитируемый пост)
Кстати, если у тебя дома - домен NT или AD

Наверное, нет, потому что я его не настраивал smile

Цитата(bilbobagginz @  4.1.2007,  14:48 Найти цитируемый пост)
можно даже яго в Programs->Startup перетащить тогда только под твоим юзверем он и будет подинматься

Оставлю все-таки ручной запуск.

Всем спасибо, вопрос закрыт.

Автор: bilbobagginz 7.1.2007, 03:22
Цитата

Вот интересно, а разве нельзя настроить старт сервисов для конкретного юзверя? ИМХО, можно, но вот как 

можно, думаю через logon script.

Автор: ivashkanet 7.1.2007, 14:24
Цитата(bilbobagginz @  7.1.2007,  02:22 Найти цитируемый пост)
можно, думаю через logon script.

Я имел ввиду силами системы smile
Типа через реестр или конфиги какие-нить smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)