CMD/BAT - проверка записи в реестре

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

CMD/BAT - проверка записи в реестре

Сообщение angelada89 »

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

надо чтобы bat проверял запись в реестре и если такая имеется то не запускал exe файл программы

пример:

Если запись HKLM\SOFTWARE\ekzamen\ /v Driverss /t REG_SZ /f >nul есть, то E:\Games\exzamen.exe не запускается!!!

помогите пожалуста с кодом этого чудаИзображение)
Аватара пользователя
angelada89

Re: CMD/BAT - проверка записи в реестре

Сообщение angelada89 »

Код:

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

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion
CHCP 1251
:: Первый запуск скрипта и запоминание даты в файл fstStrt.lst 
:: Скрипт после этого НЕ перемещать, иначе не найдет файл fstStrt.lst !!!
::reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v driver /t REG_SZ /d E:\Games\exzamen.bat /f>nul
If Not Exist fstStrt.lst Echo %date%>fstStrt.lst& Exit
For /F "tokens=1" %%a in ('reg query "reg query "HKLM\SOFTWARE\ekzamen" /v "Driverss"') do set regpath=%%a
If DEFINED regpath cacls E:\Games\exzamen.exe /T /E /D Все >nul
:: Второй и последующие запуски скрипта
For /F %%I In (fstStrt.lst) Do Set fstStrt=%%I
:: Для тестов можно раскомментировать строку и вписать в нее дату первого запуска
Set fstStrt=25.01.2009
:: Период, в течении которого будет работать, вписать в строку ниже
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% Dnej zakonchilos, vvedite key: "
        reg add HKLM\SOFTWARE\ekzamen\ /v Driverss /t REG_SZ /f >nul	
        If /I Not "!ink!"=="%key%" Echo Ne verno, poprobujte eshe raz^^^!& GoTo LOOP
	If /I  "!ink!"=="%key%"  GoTo HHH
:HHH
reg delete HKLM\SOFTWARE\ekzamen\ /v Driverss /f >nul
reg delete HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v driver /f>nul
msg * "Вы ввели правильный ключ. Спасибо за использование лицензионного софта!"
)
: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

вот весь код, нифига не получается, все равно запускает файл exzamen.exe
Аватара пользователя
amel27

Re: CMD/BAT - проверка записи в реестре

Сообщение amel27 »

или так:



Код:

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

REG Query "HKLM\SOFTWARE\ekzamen" /v "Driverss"&& Exit /B 1
Start "" "E:\Games\exzamen.exe"
Аватара пользователя
amel27

Re: CMD/BAT - проверка записи в реестре

Сообщение amel27 »

Попробуй так:



Код:

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

@Echo off
For /F "tokens=1" %%a in ('reg query "HKLM\SOFTWARE\ekzamen" /v "Driverss"') do set regpath=%%a  
If DEFINED regpath (
goto :EOF) Else (
start E:\Games\exzamen.exe)

Собственно если запись существует, то пакетник завершает свою работу, иначе файл запускается.
Аватара пользователя
angelada89

Re: CMD/BAT - проверка записи в реестре

Сообщение angelada89 »

Цитата angelada89:



он просто не дает запуститься батнику! а надо чтобы батник запускался
CMD/BAT - проверка записи в реестре




"он" это хто?... БАТНИК?.. Изображение




Цитата angelada89:



если есть запись в реестре, то батник сразу бы переходил к вот этому коду
CMD/BAT - проверка записи в реестре




посты #2 и #3 как раз о том, как проверить наличие параметра в реестре, заодно в справке по ERRORLEVEL:

Код:

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

IF /?
REG /?


Цитата angelada89:



далее exzamen.exe просто может сам запускаться
CMD/BAT - проверка записи в реестре




САМ?.. и часто?.. Изображение
Аватара пользователя
amel27

Re: CMD/BAT - проверка записи в реестре

Сообщение amel27 »

amel27, я тож голову сломал, читая это))
Аватара пользователя
angelada89

Re: CMD/BAT - проверка записи в реестре

Сообщение angelada89 »

amel27, я тож голову сломал, читая это))
Аватара пользователя
angelada89

Re: CMD/BAT - проверка записи в реестре

Сообщение angelada89 »

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





вы дали код, (2 и 3 пост) но этот КОД не дает запуститься батнику если есть запись в реестре, а надо чтобы код просто не давал запускаться exzamen.exe




Цитата:



Собственно если запись существует, то пакетник завершает свою работу, иначе файл запускается.



но надо сделать так что если запись существует, то пакетник НЕ завершал работу а запретил запуск exzamen.exe и перешел сразу на запрос ввода ключа...
Аватара пользователя
angelada89

Re: CMD/BAT - проверка записи в реестре

Сообщение angelada89 »

Как вариант:



Код:

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

@Echo off 
For /F "tokens=1" %%a in ('reg query "HKLM\SOFTWARE\ekzamen" /v "Driverss"') do set regpath=%%a   
If DEFINED regpath cacls E:\Games\exzamen.exe /T /E /D Все >nul
Аватара пользователя
angelada89

Re: CMD/BAT - проверка записи в реестре

Сообщение angelada89 »

неа не работает, не запускается пакетник сразу же вырубается
Ответить

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