Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Выкладываю другой вариант. Разрабатывал только на основе Windows 7 X86, поэтому на других системах могут быть сбои. Но сам принцип непорочен. Особо отмечу, что учёл Ваше пожелание:
Цитата Karbid87:
Хотелось бы чтобы всё содержимое прописать в этот батник и reg файлы не нужны были »
, -- и эту часть кода смело можно вставить в Ваш пакетный файл.


Код: Выделить весь код
@echo off
for /f "tokens=*" %%i in ('systeminfo 2^>nul') do (
 echo %%i|>nul findstr Windows&& set OS=%%i
)||(
 echo %%i|>nul findstr /rc:"X[68][46]\-based PC"&& set Arch=%%i&& goto:#
)
:#
for %%i in (
 XP
 Vista
 7
 8
) do (
 set OS|>nul findstr /c:"Windows %%i"&& set OS=Windows %%i
)
==if defined OS (
   echo %OS%
) else (
exit /b
)
set Arch|>nul findstr 64&& set Arch=X64
set Arch|>nul findstr 86&& set Arch=X86
echo %Arch%
chcp 1251>nul
(
echo Windows Registry Editor Version 5.00
echo.
==if %Arch%==X64 (
   echo [HKLM\SOFTWARE\Wow6432Node\1111\2222]
) else (
   echo [HKLM\SOFTWARE\1111\2222]
)
for %%i in (
     ""DataFolder"="значение""
     ""SetupLog"="значение""
     ""Version"="значение""
     ""SetupVersion"="значение""
     ""ProgramFolder"="значение""
     ""SetupFolder"="значение""
) do (
 echo %%~i
)
for /f "tokens=1* delims=*" %%i in ('
 findstr /bc:^"%OS% %Arch%^" ^"%~f0^"
') do (
 echo %%j
)
)>tmp.reg
echo reg import tmp.reg
echo del tmp.reg
pause>nul
exit /b

###############################################

Windows XP X64 *"RegData"=hex:значение 1
Windows XP X64 *"Registration"=hex:значение 1
Windows XP X64 *"Patches"=hex(7):значение 1

Windows XP X86 *"RegData"=hex:значение 2
Windows XP X86 *"Registration"=hex:значение 2
Windows XP X86 *"Patches"=hex(7):значение 2

Windows Vista X64 *"RegData"=hex:значение 3
Windows Vista X64 *"Registration"=hex:значение 3
Windows Vista X64 *"Patches"=hex(7):значение 3

Windows Vista X86 *"RegData"=hex:значение 4
Windows Vista X86 *"Registration"=hex:значение 4
Windows Vista X86 *"Patches"=hex(7):значение 4

Windows 7 X64 *"RegData"=hex:значение 5
Windows 7 X64 *"Registration"=hex:значение 5
Windows 7 X64 *"Patches"=hex(7):значение 5

Windows 7 X86 *"RegData"=hex:значение 6
Windows 7 X86 *"Registration"=hex:значение 6
Windows 7 X86 *"Patches"=hex(7):значение 6

Windows 8 X64 *"RegData"=hex:значение 7
Windows 8 X64 *"Registration"=hex:значение 7
Windows 8 X64 *"Patches"=hex(7):значение 7

Windows 8 X86 *"RegData"=hex:значение 8
Windows 8 X86 *"Registration"=hex:значение 8
Windows 8 X86 *"Patches"=hex(7):значение 8

Если значения в "hex" и "hex(7)" будут расположены в несколько строк, то префикс надо добавлять к каждой строке, учитывая пробелы в её начале, например:
Код: Выделить весь код
Windows 7 X86 *"RegData"=hex:a4,00,00,00,03,00,00,00,30,30,33,34,32,2d,4f,45,4d,2d,\
Windows 7 X86 *  38,39,39,32,37,35,32,2d,33,30,30,31,33,00,b2,00,00,00,58,31,35,2d,33,39,32,\
Windows 7 X86 *  37,35,00,00,00,00,00,00,00,35,b6,40,90,2e,72,ef,2f,c9,b3,68,d1,11,76,02,00,\
Windows 7 X86 *  00,00,00,00,58,60,5a,4d,96,66,d6,51,02,00,00,00,00,00,00,00,00,00,00,00,00,\
Windows 7 X86 *  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
Windows 7 X86 *  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,\
Windows 7 X86 *  00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,68,23,f2,11
.


Для "боевого применения" уберите "echo " из команд:

Код: Выделить весь код
echo reg import tmp.reg
echo del tmp.reg

Последний раз редактировалось Georgio, 17-02-2014 в 13:11.


Отправлено: 13:00, 17-02-2014 | #3