Войти

Показать полную графическую версию : отсчитать время до запуска bat...


Страниц : [1] 2

spk151
06-03-2013, 22:45
Привет всем! Подскажите кто может. Нужен код, который будет делать следующие вещи:
отсчитать определённое время с момента запуска (например 6 месяцев) до запуска бат-команды, и по истечению этого времени, запустить эту команду.

Iska
06-03-2013, 23:15
spk151, создайте задание в планировщике.

spk151
06-03-2013, 23:19
нужен именно бат, т.е. установка в одно нажатие

zion87
07-03-2013, 07:00
Первый запуск - настройка(сколько месяцев и где храним)

@Echo Off
Echo Где храним бат(Например C:)
Set /p Put=
Reg Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "bat" /t REG_SZ /d "%Put%\new.bat" /f
Echo Сколько месяцев ждать
Set /p Monts=
Set Year=%Date:~6%
Set /a m=%Date:~3,-5%+%Monts%
If %m% LEQ 9 Set m=0%m%
Echo @Echo Off >%Put%\new.bat
Echo If %%Date:~3%% == %m%.%Year% Start PROGRAMMA.EXE >>%Put%\new.bat
Echo Exit >>%Put%\new.bat


Меняем Start PROGRAMMA.EXE на то что нужно
P.S. здесь кодировка точно 866 )))

gora
07-03-2013, 08:53
zion87, пара сомнений:
- если компьютер работает круглосуточно и не выключается?
- если сумма в переменной m превысит 12 (или 24)?

spk151
07-03-2013, 13:17
zion87 спасибо, потестирую)

zion87
07-03-2013, 16:34
@Echo Off
Echo Где храним бат(Например C:)
Set /p Put=
Reg Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "bat" /t REG_SZ /d "%Put%\new.bat" /f
Echo Сколько месяцев ждать
Set /p Monts=
Set Year=%Date:~6%
Set /a m=%Date:~3,-5%+%Monts%
:1
If %m% LEQ 9 Set m=0%m%
if %m% GTR 12 Goto :2
Echo @Echo Off >%Put%\new.bat
Echo If %%Date:~3%% == %m%.%Year% Start PROGRAMMA.EXE >>%Put%\new.bat
Echo Exit >>%Put%\new.bat
Exit
:2
Set /a m-=12
Set /a Year+=1
Goto :1

- если сумма в переменной m превысит 12 (или 24)? » - эта проблема решена
А вот с
- если компьютер работает круглосуточно и не выключается? »
не хочется делать циклические проверки(забивать систему лишним процессом)

spk151
07-03-2013, 21:24
zion87 извини за тупость, а рабочую версию кода не скинешь? Без пояснений, но работающую. А то я на хранении уже застрял :( А что будет дальше, подумать боюсь!:durak:И вместо ехе мне нужна бат-команда

zion87
07-03-2013, 22:08
а рабочую версию кода не скинешь? »
а это какая?
Без пояснений »
эти пояснения часть кода(для того чтобы можно было легко ариентироваться)
И вместо ехе мне нужна бат-команда »
проблем не вижу, например Echo Тыры пыры!!!

spk151
07-03-2013, 22:33
zion87, Echo Где храним бат(Например C:) » ну напиши пример, тебе это ничего не стоит, а мне гуглить пол ночи :search:

cameron
07-03-2013, 23:14
есть подозрение, что это рецепт приготовления time-bomb

zion87
07-03-2013, 23:23
@Echo Off
Echo Где храним бат(Например C:)
Set /p Put=
Reg Add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "bat" /t REG_SZ /d "%Put%\new.bat" /f
Echo Сколько месяцев ждать
Set /p Monts=
Set Year=%Date:~6%
Set /a m=%Date:~3,-5%+%Monts%
:1
If %m% LEQ 9 Set m=0%m%
if %m% GTR 12 Goto :2
Echo @Echo Off >%Put%\new.bat
Echo If %%Date:~3%% == %m%.%Year% Start PROGRAMMA.EXE >>%Put%\new.bat
Echo Exit >>%Put%\new.bat
Exit
:2
Set /a m-=12
Set /a Year+=1
Goto :1


Уважаемый spk151, копируете в блокнот и нажимаете сохранить "имя.bat" с кодировкой 866 и запускаете BAT файл дальше вводите данные по запросу.

yurfed
07-03-2013, 23:48
есть подозрение, что это рецепт приготовления time-bomb »Меня тоже эта мысль посетила в первую очередь :)

spk151
08-03-2013, 00:20
zion87, спасибо, начинаю уже сам потихоньку вникать :)
cameron, на самом деле, это просто жизненно необходимая для меня вещь. Просто выйдет по истечению срока табличка с напоминанием, что пора мне позвонить;) А что это за time-bomb? Есть готовые варианты?:)

yurfed
08-03-2013, 00:26
Просто выйдет по истечению срока табличка с напоминанием, что пора мне позвонить »Я думал вы скажете поздравить маму, папу, тётю, дядю :)
А что это за time-bomb? »В один прекрасный момент (1 апреля, Новый год и тд) "взрывается бомба", которая рушит систему, всё что угодно, но до этого времени тихо сидит и ни кому не мешает.

Iska
08-03-2013, 05:06
есть подозрение, что это рецепт приготовления time-bomb »Меня тоже эта мысль посетила в первую очередь »
Ага. В частности, отказ от использования Планировщика, мягко говоря, настораживает.
Просто выйдет по истечению срока табличка с напоминанием, что пора мне позвонить
Нда… :lol:. Очень удачный пример, учитывая «простоту» работы с датами в пакетных файлах и указанный срок:
отсчитать определённое время с момента запуска (например 6 месяцев) »

spk151
08-03-2013, 13:57
Echo Где храним бат(Например C: »
где храним или хранить? Допустим, храним. Автозапуск прописывает если я ставлю диск С, С:\new.bat\new.bat Если я создаю папку new.bat и помещаю туда батник он просто заново начинает настройку. Не пойму я, какой бат там нужно хранить :search:

yurfed
08-03-2013, 14:13
С:\new.bat »Не надо папку так называть. Назовите просто newbat без точки.

spk151
08-03-2013, 14:14
можно конечно же написать вот так:

copy %0 C:\Windows\new.bat
reg add "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v project /t REG_SZ /d C:\Windows\new.bat /f
@echo off
if 23.12.2012 LEQ %date% goto metka
exit
:metka
Echo off
msg ку ку)

но тогда число нужно будет менять ручками, а хочется на автомате, вставил флешку, запустил бат и голова не болит :)

zion87
08-03-2013, 14:18
храним Echo Где храним бат(Например C:) »
если необходимо хранить в корне диска c:\ то пишем C:(без слеша) а если в какой то папке, то например c:\new(без слеша)
там храниться батник который получится после настройки ....




© OSzone.net 2001-2012