CMD/BAT - как написать цикл с проверкой вводимых данных?

Ответить
Аватара пользователя
angelada89

CMD/BAT - как написать цикл с проверкой вводимых данных?

Сообщение angelada89 »

вот кусок кода:



Код:

Код: Выделить всё

If %less% GTR 0 (  	msg * "Внимание осталось %less% дней"   	  ) 
Else (  	Echo %prd% дней закончилось, введите ключ  	pause>nul  )

теперь надо ввести ключ и проверить правильный ли он! как это сделать подскажите!

я так понимаю надо сделать цикл с условием?

типа если ключ правильный то программа продолжает работать если нет то выдает сообщение что он не правильный и предлагает заново ввести ключ! Помогите пожалуста написать код для этого цикла ибо я только начинающий не все еще знаю...
Аватара пользователя
amel27

Re: CMD/BAT - как написать цикл с проверкой вводимых данных?

Сообщение amel27 »

Цитата angelada89:



если ключ правильный то программа продолжает работать если нет то выдает сообщение что он не правильный и предлагает заново ввести ключ
CMD/BAT - как написать цикл с проверкой вводимых данных?






Код:

Код: Выделить всё

@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

Re: CMD/BAT - как написать цикл с проверкой вводимых данных?

Сообщение angelada89 »

огромное спасибо! а как теперь привязать удаление из реестра строки если ключ введен правильно??





Код:

Код: Выделить всё

@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 запись с реестра бы просто удалилась.
Аватара пользователя
amel27

Re: CMD/BAT - как написать цикл с проверкой вводимых данных?

Сообщение amel27 »

Цитата:



Set dat=%1 Set /a m=(1%dat:~3,2%-114)/12



код нерабочий - каждая CMD-команда должна идти с новой строки
Аватара пользователя
amel27

Re: CMD/BAT - как написать цикл с проверкой вводимых данных?

Сообщение amel27 »

да я знаю! Изображение просто так копирнулось не догляделИзображение
Ответить

Вернуться в «Скриптовые языки администрирования Windows»