Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Перебор веток реестра с выводом значения в одну переменную. (http://forum.oszone.net/showthread.php?t=254034)

Lucretius 14-02-2013 19:10 2090519

Перебор веток реестра с выводом значения в одну переменную.
 
Помогите решить поставленную задачу:

Необходимо определить из ключа деинсталляции версию установленной программы.
Все существующие версии можно разделить на первую(Old) и вторую(New) редакции. Ключи деинсталляции редакций отличаются.
Наличие обоих веток маловероятно(возможно, только в случае неправильной деинсталляции) т.к. директории для установки всех версий программы идентичны.

Задача:
1. Определить наличие Old-ветки c выводом значения версии в переменную %DispVer%
2. При отсутствии Old-ветки взять значение из New-ветки c выводом значения версии в эту же переменную %DispVer% (при случайном наличие двух веток взять значение из New)
3. Если значение переменной соответствует версии "5.1.1"(возможно только для New-редакции) переход "Goto patch", при её отсутствии "Echo . . ."
Вывод в переменную Old или New версий необходим для отображения информации пользователю в текстовом блоке.
Вот накидал, как смог:
Код:

Rem Old
for /f "tokens=3" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Proga_is1" /V DisplayVersion') do set "DispVer=%%i"
Cls
Rem New
for /f "tokens=4" %%i In ('Reg Query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{*-*-*-*-*}_is1" /V DisplayVersion') do set "DispVer=%%i"
Cls
if "%DispVer%"=="5.1.1" GoTo patch
Rem Текстовый блок
Echo . . .



Время: 21:46.

Время: 21:46.
© OSzone.net 2001-