1

Тема: CMD/BAT: Загрузка\Выгрузка куста реестра

Добрый день всем. Проблема такая: есть сопоставление программ определенным программам. Нужно сделать так: при запуске ПК выгрузить куст реестра, отвечающий за определенные расширения файлов (удалив его из реестра). А при монтировании какого-либо диска(назовем его Z) - возвращать обратно (импортировать выгруженный куст).
Заранее - спасибо за помощь).

2

Re: CMD/BAT: Загрузка\Выгрузка куста реестра

Работа с реестром из ком строки:

C:\Users>reg /?

REG <операция> [Список параметров]

  <операция> [ QUERY   | ADD    | DELETE  | COPY    |
                   SAVE    | LOAD   | UNLOAD  | RESTORE |
                   COMPARE | EXPORT | IMPORT  | FLAGS ]

Код возврата: (за исключением REG COMPARE)

  0 - Успешно
  1 - С ошибкой

Для получения справки по определенной операции введите:

  REG <операция> /?

Примеры:

  REG QUERY /?
  REG ADD /?
  REG DELETE /?
  REG COPY /?
  REG SAVE /?
  REG RESTORE /?
  REG LOAD /?
  REG UNLOAD /?
  REG COMPARE /?
  REG EXPORT /?
  REG IMPORT /?
  REG FLAGS /?

Сохранить ветку:

C:\Users>reg export /?

REG EXPORT <имя_раздела> <имя_файла> [/y]

  имя_раздела    КОРЕНЬ\<подраздел> (только локальный компьютер).
    КОРЕНЬ       [ HKLM | HKCU | HKCR | HKU | HKCC ]
    подраздел    Полное имя подраздела реестра в одном из выбранных корневых
                 разделов.

  имя_файла      Имя диска, на который экспортируется файл

  /y             Выполнение замены существующего файла без запроса
                 подтверждения.

Примеры:

  REG EXPORT HKLM\Software\MyCo\MyApp AppBkUp.reg
    Экспорт всех подразделов и параметров раздела MyApp в файл AppBkUp.reg

Удалить ветку:

C:\Users>reg delete /?

REG DELETE <имя_раздела> [/v <имя_параметра> | /ve | /va] [/f]

  имя_раздела  [\\<компьютер>\]<раздел>
    компьютер  Имя удаленного компьютера, если оно опущено, по умолчанию
               используется локальный компьютер. На удаленном компьютере
               можно использовать только корневые разделы HKLM и HKU.
    раздел     КОРЕНЬ\<подраздел>
    КОРЕНЬ     [ HKLM | HKCU | HKCR | HKU | HKCC ]
    подраздел  Полное имя подраздела реестра в одном из выбранных корневых
               разделов.

  имя_значения Имя параметра, удаляемого из выбранного раздела. Если оно
               опущено, удаляются все подразделы и значения указанного
               раздела.

  /ve          Удаление пустого имени параметра (По умолчанию).

  /va          Удаление всех параметров в указанном разделе.

  /f           Выполнение удаления без запроса подтверждения.

Примеры:

  REG DELETE HKLM\Software\MyCo\MyApp\Timeout
    Удаление раздела реестра Timeout и всех его подразделов и параметров.

  REG DELETE \\ZODIAC\HKLM\Software\MyCo /v MTU
    Удаление параметра реестра MTU в разделе MyCo на компьютере ZODIAC.

Импорт сохранённой ветки:

C:\Users>reg import /?

REG IMPORT <имя_файла>

  имя_файла       Имя диска, с которого импортируется файл (только локальный
                  компьютер).

Примеры:

  REG IMPORT AppBkUp.reg
    Импорт записей реестра из файла AppBkUp.reg

Denis065 пишет:

<...>при запуске ПК выгрузить куст реестра, отвечающий за определенные расширения файлов (удалив его из реестра)<...>

Помещаем в "автозагрузку":


REM ECHO "Файл куда сохраняем ветку"
SET REGFILE=C:\REGFILE.REG
REM ECHO "Ветка для экспорта"
SET REGBRANCH=HKLM\Software\MyCo\MyApp
REM Экспорт ветки
REG EXPORT %REGBRANCH% %REGFILE% /y
REM Удаление ветки
REG DELETE %REGBRANCH% /f
Denis065 пишет:

<...>при монтировании какого-либо диска(назовем его Z) - возвращать обратно (импортировать выгруженный куст)<...>

Загрузка сохранённой копии ветки:


REM ECHO "Файл куда сохраняем ветку"
SET REGFILE=C:\REGFILE.REG
REG IMPORT %REGFILE%

Есть несколько "но":
- Что вы понимаете под монтированием диска?
- Какие типы дисков вы хотите обрабатывать?

Windows позволяет настроить обработчики тех или иных событий - обработка подключения съёмных носителей - приблизительно отталкивайтесь от этого (подборка ссылок по использованию событий WMI).

3

Re: CMD/BAT: Загрузка\Выгрузка куста реестра

Простите, можно я доспрошу? Мне вот нужно в скрипте или в CMD создать ветку в HKLM, скажем, с условным названием 111, а потом в нее загрузить куст SOFTWARE из чужого реестра. Ветку создать, как я понял, с помощью REG ADD
Ввожу команду
REG ADD HKLM\111
Неверно задан параметр

REG ADD HKLM\SOFTWARE\111
отказано в доступе

Уже на этом этапе запнулся.

4 (изменено: Chai, 2016-07-22 22:39:46)

Re: CMD/BAT: Загрузка\Выгрузка куста реестра

Ой, чей то я. Под админом надо было.
Осталась вторая часть задания - загрузить в полученную ветку другую ветку из чужого реестра.

А вот подгрузить в 111 куст из \путь_к_чужому_software\software не получается.

5

Re: CMD/BAT: Загрузка\Выгрузка куста реестра

Chai
См. REG COPY /?