В общем нужно перенести с одного реестра на одном ПК в другой реестр другого ПК такие ветки, которые содержат определенное слово или фразу или предложение и т.д.
Например по фразе "Рамамбахарамамбуру" находит ветку
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Patches\1CB0F51845E7C003A9AC9C64F0FDF687\SourceList\Net
и еще пару-тройку сотен.
Что как и чем сделать так, чтоб можно было эти ветки экспортировать, а на другом ПК импортировать одним файлом?
Нашел программу reg organizer - можно осуществить поиск, высвечиваются все ветки:
но, к сожалению, их можно только удалить)))
Есть ли какие-то такие супер программы с поиском и экспортом конкретных веток?
Или как чем такое вообще можно провернуть? Что использовать?
Ответ
Поскребя в интернете по мануалам команд батника сделал такую программку:
@echo OFF
set counter=0
setlocal enableextensions enableDelayedExpansion
set TEMP_FOLDER_DIR=%temp%
egParts
set SECTION_LIST=(HKEY_CLASSES_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS,HKEY_CURRENT_CONFIG)
if [%1]==[] (set KEY_NAME=HKLM\SOFTWARE\Classes\Applications) else (set KEY_NAME=%1)
if [%2]==[] (set VALUE_NAME="Internet Explorer") else (set VALUE_NAME=%2)
if [%3]==[] (set TMP_EXPORT=%TEMP_FOLDER_DIR%) else (set TMP_EXPORT=%3)
if [%4]==[] (set DEST_MEEGED_FILE=%userprofile%\desktop) else (set DEST_MEEGED_FILE=%4)
if not exist %TEMP_FOLDER_DIR% mkdir "%TEMP_FOLDER_DIR%"
for /f "usebackq skip=1 tokens=1-2*" %%a in (`reg query %KEY_NAME% /f %VALUE_NAME% /s 2^>nul`) do (
set ValueName=%%a
set ValueType=%%b
set ValueValue=%%c
set TRUE=
if defined ValueName (
FOR %%G IN %SECTION_LIST% DO (
if not "!ValueName!"=="!ValueName:%%G=!" (
set TRUE=1
)
)
if defined TRUE (
set /a counter=counter+1
echo !counter! - !ValueName!
c:\Windows\SysWOW64
eg.exe export !ValueName! "%TMP_EXPORT%\test!counter!.reg"
)
)
)
copy /b "%TMP_EXPORT%\*.reg" "%DEST_MEEGED_FILE%\mergedFile.reg"
rmdir %TEMP_FOLDER_DIR% /s /q
endlocal
pause
где можно передать входные параметры:
1 - раздел где ищем
2 - значение, которое ищем
3 - временная папка для всех найденных веток
4 - финальная папка, где будет хранится общий файл со всеми слитыми кусками
usebackq - возможность командного исполнения того, что заключено в обратные кавычки
tokens - Задает элементы, передаваемые из каждой строки в тело цикла for
при каждой итерации. В результате "tokens=1-2*" мы получаем название ключа,
тип и значение ключа в ветке итерации
По умолчанию при отсутствии какого либо параметра ищет в HKLM\SOFTWARE\Classes\Applications (HKLM - HKEY_LOCAL_MACHINE), строку Internet Explorer, складирует куски в temp директорию, а окончательный результат кладет на рабочий стол
Комментариев нет:
Отправить комментарий