Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] сохранить несколько веток реестра и добавить строчку в reg файл

Ответить
Настройки темы
CMD/BAT - [решено] сохранить несколько веток реестра и добавить строчку в reg файл

Старожил


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

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


Изменения
Автор: shadowbat
Дата: 20-08-2014
Здравствуйте
подскажите, как сохранить две ветки реестра в один reg файл
но в начале файла еще добавить те же ветки с "-"

делаю так, но похоже, что 0.reg имеет не ту кодировку. слияние 0+1+2 не получается правильным
Код: Выделить весь код
@echo off

echo Windows Registry Editor Version 5.00 >> 0.reg
echo [-HKEY_CURRENT_USER\Software\zzz1] >> 0.reg
echo [-HKEY_CURRENT_USER\Software\zzz2] >> 0.reg

reg export "HKEY_CURRENT_USER\Software\zzz1" "1.reg"
reg export "HKEY_CURRENT_USER\Software\zzz2" "2.reg"
copy "0.reg"+"1.reg"+"2.reg" "registry.reg"
del 0.reg
del 1.reg
del 2.reg
назначение файла registry.reg - загрузить сохранённые ветки реестра, но перед добавлением удалить прошлые, чтобы не осталось лишних ключей

Отправлено: 17:35, 20-08-2014

 

Старожил


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

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


тема никак не хочет нас отпускать

выгрузилось отлично
а при загрузке:



если на файл нажать "изменить" и после того как он откроется в блокноте "сохранить" - данные успешно добавляются в реестр

пересохраненный и исходный файлы отличаются на два первых байта.
(слева реестр, справа файл сделанный через bat)

Последний раз редактировалось shadowbat, 21-08-2014 в 15:14.


Отправлено: 14:54, 21-08-2014 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


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

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


echo . >>registry.reg
добавляет неопознанный знак в файл reg, но он все равно не загружается в реестр через открытие мышкой
akelpad показывает *BOM у "неправильного" reg файла

у правильных reg файлов *BOM не стоит

как бы его вылечить
---

вот костыль. работает, хотя очень не по людски
открыть-закрыть-сохранить через блокнот
добавить в bat в конце
Код: Выделить весь код
@echo off
start /d C:\Windows\System32\ notepad.exe %CD%\registry.reg

echo With CreateObject("WScript.Shell"):.AppActivate "Блокнот":.SendKeys "^S":End With > "C:\S.vbs" 
cscript "C:\S.vbs" 
del "C:\S.vbs"

echo With CreateObject("WScript.Shell"):.AppActivate "Блокнот":.SendKeys "%%{F4}":End With > "C:\f4.vbs" 
cscript "C:\f4.vbs" 
del "C:\f4.vbs"
может есть попроще решение?
тут даже ключ start /min не проходит. получается блокнотом сверкает

Последний раз редактировалось shadowbat, 21-08-2014 в 19:10.


Отправлено: 18:09, 21-08-2014 | #12


Ветеран


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

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


Цитата shadowbat:
тема никак не хочет нас отпускать »


shadowbat, "обманул" несовпадение кодировок, получилось, по-моему, коротко и действенно:


Код: Выделить весь код
@echo off

set "branch=HKEY_CURRENT_USER\Software\"
set "soft_1=111"
set "soft_2=222"

reg add "%branch%$$$" /f>nul
reg export "%branch%$$$" "registry.reg" /y>nul
reg delete "%branch%$$$" /f>nul

(
for %%i in (
 "[-%branch%$$$]"
 ""
 "[-%branch%%soft_1%]"
 ""
 "[-%branch%%soft_2%]"
 ""
 ) do (
 cmd /u /c echo.%%~i
 )
)>>"registry.reg"

for %%i in (
 "%soft_1%"
 "%soft_2%"
 ) do (
 reg export "%branch%%%~i" 1.reg /y
 copy "registry.reg"+1.reg 2.reg>nul
 move 2.reg "registry.reg">nul
 )
del 1.reg
ping -n 3 localhost>nul

exit /b

.

Последний раз редактировалось Georgio, 21-08-2014 в 20:01. Причина: сокращение кода.

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:36, 21-08-2014 | #13


Старожил


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

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


Цитата:
по-моему, коротко и действенно
конечно коротко! по сравнению с моими то выкрутасами
спасибо! Вы очень помогли

Отправлено: 19:56, 21-08-2014 | #14


Ветеран


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

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


Цитата shadowbat:
у правильных reg файлов *BOM не стоит »
Как раз таки у правильных — «стоит».

Отправлено: 21:59, 21-08-2014 | #15



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] сохранить несколько веток реестра и добавить строчку в reg файл

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Любой язык - [решено] Переименование веток реестра Roland1313 Скриптовые языки администрирования Windows 10 23-05-2014 17:55
CMD/BAT - Перебор веток реестра с выводом значения в одну переменную. Lucretius Скриптовые языки администрирования Windows 0 14-02-2013 19:10
2008 R2 - Редактирование разрешений веток реестра через GPO. Ordinator Windows Server 2008/2008 R2 2 13-11-2012 17:04
CMD/BAT - Переименование кустов и веток реестра dorosa Скриптовые языки администрирования Windows 0 14-03-2012 05:46
Импортирование веток реестра через VBS XXXandr Microsoft Windows NT/2000/2003 9 18-07-2008 08:36




 
Переход