angelada89 |
06-03-2010 10:50 1362251 |
как написать цикл с проверкой вводимых данных?
вот кусок кода:
Код:
If %less% GTR 0 ( msg * "Внимание осталось %less% дней" )
Else ( Echo %prd% дней закончилось, введите ключ pause>nul )
теперь надо ввести ключ и проверить правильный ли он! как это сделать подскажите!
я так понимаю надо сделать цикл с условием?
типа если ключ правильный то программа продолжает работать если нет то выдает сообщение что он не правильный и предлагает заново ввести ключ! Помогите пожалуста написать код для этого цикла ибо я только начинающий не все еще знаю...
|
Цитата:
Цитата angelada89
если ключ правильный то программа продолжает работать если нет то выдает сообщение что он не правильный и предлагает заново ввести ключ »
|
Код:
@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion
Set lss=0
Set prd=10
Set key=123-ABC-456
:LOOP
If %lss% GTR 0 (msg * "Внимание! Осталось %lss% дней.") Else (
Set /P ink="%prd% дней закончилось, введите ключ: "
If /I Not "!ink!"=="%key%" Echo Ключ неверен^^^!& GoTo LOOP )
|
angelada89 |
06-03-2010 17:00 1362415 |
огромное спасибо! а как теперь привязать удаление из реестра строки если ключ введен правильно??
Код:
@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion
CHCP 1251 :: Первый запуск скрипта и запоминание даты в файл fstStrt.lst
If Not Exist fstStrt.lst Echo %date%>fstStrt.lst& Exit
:: Второй и последующие запуски скрипта
For /F %%I In (fstStrt.lst) Do Set fstStrt=%%I
Set fstStrt=25.01.2010
Set prd=30
Set key=123456
Call :JDat %date%
Set less=%JDate%
Call :JDat %fstStrt%
Set /a less=JDate+prd-less
:LOOP If %less% GTR 0 ( msg * "Внимание осталось %less% дней" ) Else ( Set /P ink= "%prd% дней закончилось, введите ключ: " If /I Not "!ink!"=="%key%" Echo Ключ неверен^^^!& GoTo LOOP ) Exit
:JDat Set dat=%1 Set /a m=(1%dat:~3,2%-114)/12 Set /a JDate=1%dat:~0,2%+((1%dat:~3,2%-102-m*12)*367+((%dat:~6%+m)*487-49-(%dat:~6%+m)/100)*9)/12
GoTo:EOF
вот теперь надо сделать так что при первом запуске программа делает 2 записи в реестр одна в авторане чтобы программа запускала себя каждый раз при в ключении и сверялась с датой!
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v PROGA /t REG_SZ /d C:\Windows\system\PROGA.bat /f>nul
а вторая запись которая бы потом не давала заново запускать программу когда кончится время!
а если ввели ключ то 2 запись с реестра бы просто удалилась.
|
Цитата:
Set dat=%1 Set /a m=(1%dat:~3,2%-114)/12
|
код нерабочий - каждая CMD-команда должна идти с новой строки
|
angelada89 |
07-03-2010 14:42 1362929 |
да я знаю! =) просто так копирнулось не доглядел=)
|
Время: 09:21.
© OSzone.net 2001-