Bat ищет ключ реестра и
Доброго времени суток, помогите плиз читал похожие темы но что то ни как не могу сворганить что то подобное короче нужно что бы батник залез в реестр HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartme nu посмотрел если там ключ {645FF040-5081-101B-9F08-00AA002F954E} если есть то goto ну и если нет соответственно .... помогите плиз
да и заодно второй вопросик похожий тот же батник чтобы сравнил имя сетевого подключения например если имя "Подключение по локальной сети" то goto ну и если нет соответственно ЗАРАНЕЕ БЛАГОДАРЕН
|
zion87,
Код:
@echo off
setlocal
set "regpath=hkcu\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartme\{645FF040-5081-101B-9F08-00AA002F954E}"
1>nul 2>&1 reg query "%regpath%" && goto:1 || goto:eof
:1
echo %regpath% exists
|
Или так:
Код:
@echo off
For /F "UseBackQ Tokens=2*" %%I In (`Reg Query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartme"^|Find /I "{645FF040-5081-101B-9F08-00AA002F954E}"`) Do goto stop
echo key no exists
pause
exit
:stop
echo key exists
pause
exit
|
Спасибо огромное God_Zilla, второй сработал отлично!!!!!!!
теперь надо разобраться с сетевым подключением....
буду ждать ответов
|
AlexThePeacemaker |
21-11-2011 11:51 1799730 |
А можно как-нибудь получить значение параметра?
Например, прогамма прописывается в ветку реестра HKEY_LOCAL_MACHINE\SOFTWARE\Application
В ветке находится параметр AppPath=C:\Program Files\Application
Можно ли получить значение AppPath и сделать его переменной (set X=AppPath)?
|
AlexThePeacemaker,
Код:
@echo off
set Application=7-Zip
set AppPath=path
REG QUERY HKLM\SOFTWARE\%Application% /v %AppPath%>1.txt
findstr /I "%AppPath%" 1.txt>2.txt
for /f "tokens=3 delims= " %%a in (2.txt) do set X=%%a
echo Переменной X присвоено значение %X%
del /q 1.txt
del /q 2.txt
pause
|
Код:
@echo off
setlocal
set "regpath=HKEY_LOCAL_MACHINE\SOFTWARE\APPLICATION"
for /f "tokens=3*" %%i in (' reg query "%regpath%" /v "APPPATH" ') do call:set %%i %%j
echo %X%
goto:eof
:set
set "X=%*"
Красным выделены твои названия ключа и параметра
|
AlexThePeacemaker |
26-11-2011 11:40 1803683 |
А если значения "Application" и "AppPath" содержат пробелы?
|
Цитата:
Цитата AlexThePeacemaker
А если значения "Application" и "AppPath" содержат пробелы? »
|
Какая разница, с пробелом или без? Вот если параметр "AppPath" в своем названии ( не значении ) будет содержать пробел, например "App Path", вот тогда надо менять токен:
Код:
for /f "tokens=4*" %%i in (' reg query "%regpath%" /v "APP PATH" ') do ....
|
AlexThePeacemaker |
26-11-2011 17:02 1803822 |
Foreigner, дело в том, что APPLICATION может иметь значение типа "Mega Soft"
|
Цитата:
Цитата AlexThePeacemaker
дело в том, что APPLICATION может иметь значение типа "Mega Soft" »
|
И что?
|
AlexThePeacemaker |
27-11-2011 12:46 1804157 |
То, что несмотря на кавычки вместо пути к программе в результате выдается "VERSION 3.0", хотя такого значения вообще нет в искомой ветке реестра. Кстати, такого значения как "VERSION 3.0" вообще нет у меня в реестре
|
AlexThePeacemaker, зато есть в выводе «reg.exe» ;).
P.S. Имеет смысл начинать учиться.
|
AlexThePeacemaker,
Приведи конкретный пример ключа реестра и его параметров. Например где все с пробелами:
Код:
@echo off
setlocal
set "regpath=HKEY_CURRENT_USER\Software\Opera Software"
for /f "tokens=5*" %%i in (' reg query "%regpath%" /v "Last CommandLine v2" ') do call:set %%i %%j
echo %X%
goto:eof
:set
set "X=%*"
Получаю:
Цитата:
C:\Program Files (x86)\Opera\Opera.exe /uninstall
|
Ну и конечно reg delete "hkcu\software\opera software" /f
|
Чтоб не считать токены вручную:
Код:
@echo off
setlocal
set "regkey=HKEY_CURRENT_USER\Software\Some Test Key"
set "regparam=Parameter of Key"
set "tok=2"
for %%i in (%regparam%) do set /a tok+=1
for /f "tokens=%tok%*" %%i in (' reg query "%regkey%" /v "%regparam%" ') do call:set %%i %%j
echo %X%
goto:eof
:set
set "X=%*"
To что зеленым -- изменяемая часть, сам ключ и нужный параметр ключа.
|
Время: 18:21.
© OSzone.net 2001-