![]() |
Как сравнить %DATE% с установленной в ручную датой??
Пишу небольшую программку! столкнулся с проблемой никак не пойму как сравнить %DATE% с датой которая мне нужна!
вот пример: @echo off copy 111.bat C:\Windows\system reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v 111 /t REG_SZ /d C:\Windows\system\111.bat /f>nul CHCP 1251 IF %DATE%==10.02.2010 GOTO abc EXIT :abc Тут дальнейшие выполняемые действия программки EXIT Так он сравнивает только с 10.02.2010 а мне надо чтобы он проверял начиная с 10 числа. Как бы параметр => (больше либо равно) Потому что если 10.02.2010 компьютер не был включен то и батник этот не заработает. Помогите пожалуста, перерыл все что мог... нигде не могу найти ответа, а типичной функйии => как я понял нет. |
[решено] Как сделать,что б батник проверял число ?
Цитата:
|
это вот такой будет конечный результат?
@echo off copy 111.bat C:\Windows\system reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v 111 /t REG_SZ /d C:\Windows\system\111.bat /f>nul CHCP 1251 IF %date:~6,4%%date:~3,2%%date:~0,2% GTR 20100328 GOTO abc EXIT :abc Тут дальнейшие выполняемые действия программки EXIT Если это правльно! то возникает сразу следующий вопрос! А можно ли сделать так что когда ты ставишь прогу она к текущей дате прибавила определенное кол-во дней и потом уже проверяла именно от даты которая получится! Это как бы надо прибавить к дате текущей дни, месяца и года , потом записать это в переменную и сравнивать уже с переменной.... такое вообще возможно?? Буду очень признателен если получится вот так было бы удобне просто с функцией => (линк почему то не работает!) можете ссылку перезалить if /? не к чему не привел=) я уже это не раз читал=) все никак не пойму как поставить чтобы параметр был больше либо равно! Если знаете помогите пожалуста просто горит уже надо очень сильно написать...... |
Цитата:
Цитата:
Цитата:
|
@echo off
copy vrem.bat C:\Windows\system reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v vrem /t REG_SZ /d C:\Windows\system\vrem.bat /f>nul CHCP 1251 IF /i '%DATE%' GEQ '12.02.2010' goto abc goto end :abc msg * "бла бла бла бла ..." :end EXIT так?? почучается если дата больше чем 12.02.2010 он выдаст сообщение! теперь то что было не понятно! вот я запустил батник на компе! надо чтобы он определил дату, к этой дате прибавил кол-во дней заданных мною например 5 дней. и в дальнейшем сравнивал уже с новой датой тоесть не с 12.02.2010 а с просчитанной датой которая на 5 дней больше чем дата в момент запуска батника |
Цитата:
Код:
IF %date:~6,4%%date:~3,2%%date:~0,2% GEQ 20100212 GOTO abc Цитата:
|
IF %date:~6,4%%date:~3,2%%date:~0,2% GEQ 20100212 GOTO abc на счет этого понял! уже сам допер и исправил!=)
а вот на счет 5 дней вы не так поняли=) я запустил батник сегодня надо с сегоднящней даты прибавить опрелделенное кол-во дней. принцип триальных программ! сегодня запустил сегодня отсчет и пошел! как прошло 30 дней так прога перестала работать! а тут как прошло допустим 5 дней то прога выдала сообщение.. я так понимаю надо будет писать IF %date:~6,4%%date:~3,2%%date:~0,2% GEQ 20100212 GOTO abc только место 20100212 нужна будет переменная! а эту переменную батник сам посчитает при запуске ! смысл такой что я запустил батник выЯвил сегодняшнее число, прибавил к нему 5-10 -20 дней на свое усмотрение и далее уже IF %date:~6,4%%date:~3,2%%date:~0,2% GEQ Peremennaya GOTO abc все это будет в 1 батнике. 1. Запуск батника 2. выявление сегодняшнего числа 3. прибавка к нему кол-ва дней и сохранение новой даты как переменная 4. сравнение текущей даты с переменной 5. ну а далее там понятно уже деййствия по условию |
такс вот код который прибавляет дни начиная с запуска!
@echo off set T_Date=%DATE% IF %T_DATE:~0,1%==0 ( SET /A T_DAY=%T_DATE:~1,1%) else ( SET /A T_DAY=%T_DATE:~0,2%) IF %T_DATE:~3,1%==0 ( SET /A T_MONTH=%T_DATE:~4,1%) else ( SET /A T_MONTH=%T_DATE:~3,2%) SET /A T_YEAR=%T_DATE:~6,4% SET /A T_DAY=%T_DAY%+31 IF %T_DAY% GTR 31 SET /A T_MONTH=%T_MONTH%+1 IF %T_MONTH% GTR 12 SET /A T_YEAR=%T_YEAR%+1 if %T_MONTH%==1 Set /A DIM=31 if %T_MONTH%==2 Set /A DIM=28 if %T_MONTH%==3 Set /A DIM=31 if %T_MONTH%==4 Set /A DIM=30 if %T_MONTH%==5 Set /A DIM=31 if %T_MONTH%==6 Set /A DIM=30 if %T_MONTH%==7 Set /A DIM=31 if %T_MONTH%==8 Set /A DIM=31 if %T_MONTH%==9 Set /A DIM=30 if %T_MONTH%==10 Set /A DIM=31 if %T_MONTH%==11 Set /A DIM=30 if %T_MONTH%==12 Set /A DIM=31 IF %T_DAY% GTR 31 SET /A T_DAY=%T_DAY%-%DIM% IF %T_MONTH% GTR 12 SET /A T_MONTH=1 echo %T_DAY%.%T_MONTH%.%T_YEAR% pause Есть 2 проблемы в нем : 1) это когда месяц январь то после того как он прибавит 30 дней то выдает дни типа 32, 33, 34 ,35 и так далее! это только с январем с другими месецами вроде нормально. 2) вторая проблемка что когда он прибавляет дни он считает не правильно! типа было 10 февраля он прибавил 30 дней и стало не 12 как должно быть, а 8. |
исправленный вариант моего старого скрипта, тестируйте:
Код:
@Echo Off |
Amel27 отличный код спасибо все рботает!
Теперь мне надо сравнить дату сегодняшнюю с тем что высчитало... Если ставить так то не работает! Код:
IF %date:~6,4%%date:~3,2%%date:~0,2% LSS %T_DAY:~-2%%T_MONTH:~-2%%T_YEAR% GOTO abc Код:
IF %date:~6,4%%date:~3,2%%date:~0,2% GEQ 20100212 GOTO abc Код:
%date:~6,4%%date:~3,2%%date:~0,2% LSS %T_YEAR%%T_MONTH:~-2%%T_DAY:~-2% GOTO abc И если получится то останется последняя проблема! Чтобы батник сам проверял каждый день сколько осталось дней до того числа которое он высчитывает... Ведь если он будет в автозапуске то он каждый раз при загрузке будет высчитывать новое число! верно же??.... Получается надо сделать так чтобы он как бы 1 раз высчитал число на 31 день больше, и потом уже при запуске только сверялся с ним а не перерасчитывал все это |
angelada89, ваша задача решается проще:
Код:
@Echo Off |
Цитата:
Код:
Set T_DAY=0%T_DAY%& Set T_MONTH=0%T_MONTH% Цитата:
|
такс вариант GORA вроде подошел
сюда Код:
If %less% GTR 0 |
Время: 18:29. |
Время: 18:29.
© OSzone.net 2001-