|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Export Registry Value |
|
|
CMD/BAT - [решено] Export Registry Value
|
Ветеран Сообщения: 842 |
Вот нашёл скрипты, которые дополняют утилиту reg.exe. Именно возможность экспорта конкретных параметров, чего мне не доставало!
Building a reg file and display it in Notepad: --------------------8<---------------------- @echo off setlocal set rkey=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion set rvalue="RegisteredOwner" set regexe=%SystemRoot%\System32\Reg.exe for /f "Skip=4 Tokens=3" %%a in ('%regexe% QUERY "%rkey%" /v %rvalue%') do ( set rdata=%%a ) set regfile="c:\my tst.reg" echo REGEDIT4>%regfile% echo.>>%regfile% echo [%rkey%]>>%regfile% echo %rvalue%^="%rdata%">>%regfile% echo.>>%regfile% start notepad.exe %regfile% endlocal --------------------8<---------------------- Just dumping the registry value data to a text file: --------------------8<---------------------- @echo off setlocal set rkey=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion set rvalue="RegisteredOwner" set regexe=%SystemRoot%\System32\Reg.exe for /f "Skip=4 Tokens=3" %%a in ('%regexe% QUERY "%rkey%" /v %rvalue%') do ( set rdata=%%a ) echo %rdata% >c:\tst.txt start notepad.exe c:\tst.txt endlocal --------------------8<---------------------- |
|
------- Отправлено: 01:20, 21-06-2009 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Кстати, батник тоже не даст корректный файл относительно REG_EXPAND_SZ
REGEDIT4 [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment] "ComSpec"="%SystemRoot%\system32\cmd.exe" Обычно ведь REG_EXPAND_SZ записываентся в виде hex(2):61,00,62,00,63...00,00 |
------- Отправлено: 02:09, 21-06-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать semiono, нормальные герои всегда идут в обход (c)
![]() @Echo Off Set $R_REG=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment Set $R_VAL=ComSpec Set $R_TMP=HKEY_CURRENT_USER\Temp Set $F_REG=%~dpn0.reg Set $F_TMP=%~dpn0.tmp Set $N=1 For %%i In (%$R_VAL%) Do Set /A $N+=1 Reg Delete "%$R_TMP%" /f If Exist "%$F_TMP%" DEL /F/Q "%$F_TMP%" If Exist "%$F_REG%" DEL /F/Q "%$F_REG%" For /F "Tokens=%$N%* Delims= " %%i In ('REG Query "%$R_REG%" /v "%$R_VAL%"^|FindStr /IBRC:^" *%$R_VAL% * *REG_^"') Do REG ADD "%$R_TMP%" /v "%$R_VAL%" /t %%i /f /d "%%j" Reg Export "%$R_TMP%" %$F_TMP% For /F "Delims=:" %%i In ('Type "%$F_TMP%"^|FindStr /BNC:^"[^"') Do Set $M=%%i For /F "Tokens=1* Delims=:" %%i In ('Type "%$F_TMP%"^|FindStr /BVNC:^"]^"') Do ( If %%i EQU %$M% ( Echo.[%$R_REG%]>>%$F_REG% ) ELSE ( Echo.%%j>>%$F_REG% ) ) Цитата semiono:
P.S. нашел глюк в Win2003 - REG.Exe выводит REG_EXPAND_SZ как REG_SZ |
|
Отправлено: 07:29, 22-06-2009 | #3 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать amel27, надо довести батник до результата, пожалуйста!
Прокоментирую кое что из сказанного Цитата:
Цитата:
Цитата:
Но похоже что это неразрешимая проблема для reg.exe утилиты. (хотя если подумать может автоитом тут почистить) 4. выгрузить "HKCU\TMP" в новый REG-файл ("REGEDIT /E" или "REG EXPORT"); 5. в новом REG-файле заменить "[HKEY_CURRENT_USER\TMP\HKEY_" на "[HKEY_"; формирование EXPAND_SZ строк в свой embedded вид ![]() Если это всё можно батником зделать, это хорошо, но для меня это высший пилотаж, лучше уж готовое покажите. Цитата amel27:
![]() Вообще-то порабы утилиту написать, раз уж такое дело в винде. Можно много чего из бинарей найти, но reg.exe alternative что-то ни у кого руки не доходят жаль. Хотя бы из скриптов соорудить! ![]() ЗЫ Цитата:
У меня WinXP SP3 ENG Pro... Может с профилями чего не так? Что там за token в батнике? |
|||||
------- Последний раз редактировалось semiono, 22-01-2010 в 06:37. Отправлено: 06:27, 22-01-2010 | #4 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата semiono:
Цитата semiono:
@Echo Off Set $R_REG=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment Set $R_VAL=ComSpec Set $R_TMP=HKEY_CURRENT_USER\Temp Set $F_REG=%~dpn0.reg Set $F_TMP=%~dpn0.tmp Set $N=1 For %%i In (%$R_VAL%) Do Set /A $N+=1 Reg Delete "%$R_TMP%" /f >Nul 2>&1 If Exist "%$F_TMP%" DEL /F/Q "%$F_TMP%" If Exist "%$F_REG%" DEL /F/Q "%$F_REG%" For /F "Tokens=%$N%* Delims= " %%i In ( 'REG Query "%$R_REG%" /v "%$R_VAL%"^|FindStr /IBRC:"[ ]*%$R_VAL%[ ][ ]*REG_"' ) Do REG ADD "%$R_TMP%" /v "%$R_VAL%" /t %%i /f /d "%%j" >Nul RegEdit /E:A "%$F_TMP%" "%$R_TMP%" For /F "Delims=:" %%i In ('FindStr /BNC:^"[^" "%$F_TMP%"') Do Set $M=%%i For /F "Tokens=1* Delims=:" %%i In ('FindStr /BVNC:^"]^" "%$F_TMP%"') Do ( If %%i EQU %$M% ( Echo.[%$R_REG%]>>%$F_REG% ) ELSE ( Echo.%%j>>%$F_REG% ) ) |
|||
Отправлено: 04:45, 23-01-2010 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать amel27, reg.exe (во всяком случае, в версии для XP) поддерживает неупоминаемый унаследованный ключ «/nt4». Впервые обнаружил упоминание об этом ключе здесь же: REG EXPORT … /nt4.
|
Отправлено: 13:45, 23-01-2010 | #6 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Iska, я знал что такой ключ есть, но забыл, поэтому акцентировал намеренно, в надежде что кто-нибудь напомнит, спасибо...
![]() |
Отправлено: 15:03, 23-01-2010 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать amel27, самое интересное то, что я, в общем-то, обратил тогда внимание на тот вышеуказанный пост сугубо потому, что там стояла Ваша пометка о полезности
![]() |
Отправлено: 17:41, 23-01-2010 | #8 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Цитата amel27:
Забавно, tmp файл не устпевает удалять почему-то, но зато он содержит то же что и регфайл. ![]() Так что сразу аж два получается. )) amel27, я не знаю может времени нет, но я там писал в автоит разделе, что есть ошибка, может не видел? Причём очень существенная! А сам скрипт очень полезен и нужен. http://forum.oszone.net/thread-143253-3.html |
|
------- Отправлено: 02:00, 25-01-2010 | #9 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать |
Отправлено: 03:10, 25-01-2010 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Registry Defragmentation 9.2.1.20 | OSZone Software | Новости программного обеспечения | 0 | 22-01-2010 14:30 | |
export-reg2inf (как узнать тип данных в реестре) | semiono | AutoIt | 1 | 31-12-2009 00:34 | |
Algoware Active Directory Bulk Export 1.0 | OSZone Software | Новости программного обеспечения | 0 | 03-12-2009 12:30 | |
Registry Winner 5.6.11.20 | OSZone Software | Новости программного обеспечения | 0 | 20-11-2009 20:30 | |
Redhat/Fedora - Вопрос по командам set, env, declare, export | vkostromin | Общий по Linux | 2 | 14-10-2007 16:01 |
|