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

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

Ответить
Настройки темы
CMD/BAT - [решено] Не прописываемое значение...

Аватара для Dodakaedr

Ветеран


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


Конфигурация

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


Скажите, пожалуйста, как импортировать такой ключ через cmd/bat?
Содержимое reg ключа
Код: Выделить весь код
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Code Systems]

[HKEY_LOCAL_MACHINE\SOFTWARE\Code Systems\Spoon IDE]
"LicenseCertificate"="<?xml version=\"1.0\" encoding=\"utf-16\"?><LicenseCertificate version=\"2\" publisher=\"Spoon\"><LicenseType>Retail</LicenseType><LicenseModel>Site</LicenseModel><ProductCode>ALL</ProductCode><LicenseeName>LineZer0</LicenseeName><Account>LineZer0</Account><Signature>

b741fb7157f38cbdfbe9e41faa55d72baba67d350ec7f2ba38236a01e06476f1

f4d6e184a49ce6716162935d2768aed3e583afcf7f8b59be415c57898dca0d67

289c342633b590bb2b342f97e92872e86de1434c9e84d6757638786e5abf24cd

e6394692e1012b93e517b27d38721c94dac5c0964a6d6b63826e314dd0dbe41d

</Signature></LicenseCertificate>"

оригинальный текст значения
Код: Выделить весь код
<?xml version="1.0" encoding="utf-16"?>
<LicenseCertificate version="2" publisher="Spoon">
    <LicenseType>Retail</LicenseType>
    <LicenseModel>Site</LicenseModel>
    <ProductCode>ALL</ProductCode>
    <LicenseeName>LineZer0</LicenseeName>
    <Account>LineZer0</Account>
    <Signature>
        b741fb7157f38cbdfbe9e41faa55d72b
        aba67d350ec7f2ba38236a01e06476f1
        f4d6e184a49ce6716162935d2768aed3
        e583afcf7f8b59be415c57898dca0d67
        289c342633b590bb2b342f97e92872e8
        6de1434c9e84d6757638786e5abf24cd
        e6394692e1012b93e517b27d38721c94
        dac5c0964a6d6b63826e314dd0dbe41d
    </Signature>
</LicenseCertificate>

При обычном импорте параметр LicenseCertificate почему-то не создается.

-------
Inno Setup 5 Ultra Unicode


Отправлено: 11:50, 04-11-2014

 

Ветеран


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

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


khasia, вопрос тот же — как был сделан этот файл реестра? Также хотелось бы посмотреть на оригинальное содержимое данного параметра в реестре.

В принципе, при экспорте могут быть ошибки, приводящие в созданию некорректного файла реестра, который невозможно будет потом импортировать. Потому и хотелось бы посмотреть оригинал в самом реестре, дабы понять, как он выглядит на самом деле, и что можно сделать.

Отправлено: 10:49, 04-11-2016 | #11



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

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


Новый участник


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

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


Он такой же как в вашем посте #4
Вот ещё один

Отправлено: 12:43, 04-11-2016 | #12


Ветеран


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

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


Цитата khasia:
Он такой же как в вашем посте #4
Вот ещё один »
Вы знаете, по виду — не совсем такой же. Обратите внимание на то, что я обвёл красным:
Скрытый текст

Выделенное — концы строк. Есть ли они у Вас (и должны ли они быть — я-то ведь просто пример показывал) — сложно сказать.

Давайте попробуем так, дабы я смог попытаться «поиграться» и «пощупать». Выполните сохранение искомого подраздела во внешний куст командой (вместо выделенного подставьте Ваш путь в реестре):
Код: Выделить весь код
reg.exe save "HKEY_LOCAL_MACHINE\SOFTWARE\Code Systems\Spoon IDE" "Sample.hiv"
Упакуйте полученный Sample.hiv в архив и приложите к сообщению.

Отправлено: 13:33, 04-11-2016 | #13


Новый участник


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

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


Вложения
Тип файла: 7z Sample.7z
(908 байт, 4 просмотров)

Цитата Iska:
Упакуйте полученный Sample.hiv в архив и приложите к сообщению. »

Отправлено: 14:10, 04-11-2016 | #14


Ветеран


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

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


khasia, примерно ясно. Вот как он выглядит в реальности:
Скрытый текст

И, видимо, поэтому на этапе экспорта C-шные функции работы со строкой воспринимают эти данные как свои escape-последовательности (конец строки в формате Windows из пары символов CrLf) и пишут их в экспортируемый файл. Обратного же преобразования в escape-последовательности, естественно, не производится.

Предлагаю два варианта:

1. Использовать формат кустов — уже знакомый Вам:
Код: Выделить весь код
reg.exe save "Путь к подразделу" "Файл.hiv"
для экспорта куста и:
Код: Выделить весь код
reg.exe restore "Путь к подразделу" "Файл.hiv"
для импорта. Не так наглядно, но работает.

2. Учитывая тот факт, что по стандарту xml должен быть индифферентен к пробельным символам (теоретически должен, на практике же всё зависит от конкретного парсера xml), попробовать в полученном путём экспорта файле реестра .reg (reg.exe export) «ручками» убрать все концы строк, дабы получилась одна строка, наподобие (на путь к подразделу не смотрите — это пример, у Вас путь будет свой):
Код: Выделить весь код
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Sample]
"LicenseCertificate"="<?xml version=\"1.0\" encoding=\"utf-16\"?><LicenseCertificate version=\"2\" publisher=\"Spoon\">    <LicenseType>Retail</LicenseType>    <LicenseModel>Site</LicenseModel>    <ProductCode>ALL</ProductCode>    <LicenseeName>LineZer0</LicenseeName>    <Account>LineZer0</Account>    <Signature>        b741fb7157f38cbdfbe9e41faa55d72b        aba67d350ec7f2ba38236a01e06476f1        f4d6e184a49ce6716162935d2768aed3        e583afcf7f8b59be415c57898dca0d67        289c342633b590bb2b342f97e92872e8        6de1434c9e84d6757638786e5abf24cd        e6394692e1012b93e517b27d38721c94        dac5c0964a6d6b63826e314dd0dbe41d    </Signature></LicenseCertificate>"
Затем сделайте резервную копию в виде экспорта куста реестра путём вышеприведённой команды reg.exe save …, затем попробуйте импортировать отредактированный файл реестра .reg. Затем попробуйте запустить приложение/приложения, которые работают с данным параметром реестра, и посмотреть, всё ли будет в порядке. Если всё будет нормально — значит второй путь также годится к использованию.


Есть и ещё один вариант, связанный опять же с ручной подстановкой \r\n в экспортированный файл реестра, но есть подозрение, что при попытке импорта наступим на те же грабли. Посему пока даже не проверял сие.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:55, 04-11-2016 | #15


Новый участник


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

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


У меня в результате экспериментов, вроде получилось. Вот как добился.
1. Экспортирую ветку в reg-файл, получаю содержимое REG-ключа такого же вида как в шапке.
2. Открываю в текстовом редакторе и привожу его к виду, как в последнем примере в вашем предыдущем посте. Т.е значение в одну строчку и без пробелов, и сохраняю в ЮНИКОДЕ. И всё прописывается. Если не трудно проверьте на корректность.

Отправлено: 15:16, 04-11-2016 | #16


Ветеран


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

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


Цитата khasia:
и без пробелов »
Пробелы как раз не существенны. Проблема состоит в escape-последовательностях, которые воспринимаются и обрабатываются «как свои» C-шными функциями работы со строками редактора реестра и утилиты reg.exe, как я писал чуть выше.

Цитата khasia:
и сохраняю в ЮНИКОДЕ. »
Так файл и так будет в юникоде (UTF-16LE/1200) уже при экспорте из реестра.

Цитата khasia:
Если не трудно проверьте на корректность. »
А как я могу проверить? Тут только Вы сами:
Цитата Iska:
Затем попробуйте запустить приложение/приложения, которые работают с данным параметром реестра, и посмотреть, всё ли будет в порядке. Если всё будет нормально — значит второй путь также годится к использованию. »
У меня-то этих приложений нет.

Отправлено: 15:46, 04-11-2016 | #17


Новый участник


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

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


Да проверил, приложение работает нормально.
Спасибо за помощь.

Отправлено: 15:57, 04-11-2016 | #18



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как получить значение параметра из реестра, добавить значение в текстовый файл etc.? Dark Ange1 Скриптовые языки администрирования Windows 28 22-06-2022 14:37
Доступ - Не могу исправить значение параметра в реестре, отказано в доступе Shindler_2010 Microsoft Windows 7 6 25-09-2014 10:54
Загрузка - XP SP3. Значение «громкость» сбрасывается в среднее значение при перезагрузке. mitkadritka Microsoft Windows 2000/XP 9 24-02-2012 20:37
Сохранение страницы как MHT в IE9 (элемнты управления не изменяют свое значение) avmir AutoIt 8 12-12-2011 17:55
[решено] Изменить значение параметра — Не INI файл! semiono AutoIt 21 13-08-2010 14:12




 
Переход