|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Удаление строк из регфайла... |
|
Удаление строк из регфайла...
|
Ветеран Сообщения: 842 |
Очень похоже, что трудная тема и даже если имеет решение, то какое нибудь экзотическое, но всёравно спрошу.
Во-первых, как можно объединить контент двух регфайлов, здесь сразу же возникает проблемма удаления одного из лишних заголовков? Но более сложно, мне нужно очистить регфайл от лишних строк... Формат хочу сохранить традиционный, поэтому юзаю стандартный (microsoft) reg.exe export [ key + subkey ] file.reg Можно ли удалить все строки исключив избранные($var) , причём фильтровать нужно по именам параметров, так как не гарантированно, что они в алфавитном порядке идут, и надо как-то узнать конец для строк значений, ибо возможны переносы \ в MULTI_SZ Но если возможно, то на первый случай хотябы только DWORD, STRING и EXPAND_SZ обработать, так как более сложные реже встречаются в HKEY\SOFTWARE практически. Но для более общего случая очень бы хотелось, чтоб всё было. И ещё надо удалить ненужные пустые разделы-заголовки... Типа те которые не содержут параметров вообще... [HKEY_LOCAL_MACHINE\Software\a] ... [HKEY_LOCAL_MACHINE\Software\abcd] тут пусто [HKEY_LOCAL_MACHINE\Software\b] ... на месте строк не оставались. ??? --- Я даже приведу пример, чтоб было наглядно, хотя это более сложный случай, так как экспортировать весь HCCR это слишком накладно, чтоб потом его разбирать, но зато как пример подходит! Как получить такое: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.rar] @="WinRAR" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\WinRAR\DefaultIcon] @="C:\\I\\Apps\WinRar\\WinRAR.exe,1" Если здесь воспользоваться RegRead() au3 то потом более проблематично создавать Windows Registry Editor V5.00 - валидный файл, так как переносы строк expand_sz там мудрённо как-то выщитываются, да и потом конвертировать в строку байтов с запятыми, там фиг разберёшся. Мне более нормальным представляется очистка готового файла от лишних строк, об чём и речь. Помогите пожалуйста! На худой конец можно зделать INI файл того же содержания... То-есть такой [Version] Signature=$Windows NT$ [DefaultInstall] AddReg=Add.Reg [Add.Reg] и здесь избирательно нужные строки параметров реестра.... Кстати, здесь проблемма автоит в том, что тут нету логики a=b для реестра! Вот формат строки примерно HKLM,"Software\Classes\AVIFile\Extensions\AVI",,0,"{00020000-0000-0000-C000-000000000046}" как видите без равенства "=" |
|
------- Отправлено: 22:09, 18-01-2010 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать Я на досуге думал об этом и вот что надумалось!...
Надо только сграбить "бинарные" строки в какуюнибудь переменную. Остальные строки не представляют проблему. Значит надо только найти начало по =hex "признаку" и конец (всей) строки, ну скажем по начальным кавычкам '"' следущего параметра наверно? Но я только не знаю есть ли возможность сохранить этот контент строк в том виде как он записан в регфайле, чтобы его вбить в переменную $var1 ? Тогда было бы можно просто её вписать в новый файл. Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\New Key #1] "New Value #1"=hex(2):31,00,32,00,33,00,34,00,35,00,36,00,37,00,38,00,39,00,61,\ 00,62,00,63,00,64,00,65,00,66,00,67,00,68,00,69,00,6a,00,6b,00,6c,00,6d,00,\ 6e,00,6f,00,70,00,71,00,72,00,73,00,74,00,75,00,76,00,77,00,78,00,79,00,7a,\ 00,00,00 "New Value #2"=hex(2):00,00 Есть ли способ схватить такое: (2):31,00,32,00,33,00,34,00,35,00,36,00,37,00,38,00,39,00,61,\ 00,62,00,63,00,64,00,65,00,66,00,67,00,68,00,69,00,6a,00,6b,00,6c,00,6d,00,\ 6e,00,6f,00,70,00,71,00,72,00,73,00,74,00,75,00,76,00,77,00,78,00,79,00,7a,\ 00,00,00 как дамп строк с переносами и пробелами?? Да вот вспомнил, это массив обычно называется... |
------- Отправлено: 21:32, 19-01-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать semiono, предлагаю более простой способ:
1. по всем REG-файлам заменить "[HKEY_" на "[HKEY_CURRENT_USER\TMP\HKEY_"; 2. загрузить все полученные REG-файлы (через "REGEDIT /S" или "REG IMPORT"); 3. стандартными REG-функциями почистить ветку "HKCU\TMP" от лишних параметров; 4. выгрузить "HKCU\TMP" в новый REG-файл ("REGEDIT /E" или "REG EXPORT"); 5. в новом REG-файле заменить "[HKEY_CURRENT_USER\TMP\HKEY_" на "[HKEY_"; 6. удалить ключ "HKCU\TMP" (для надежности можно и перед шагом 1). P.S. кста я уже предлагал тебе подобное: CMD/BAT - Export Registry Value |
Отправлено: 14:26, 20-01-2010 | #3 |
Ветеран Сообщения: 842
|
Профиль | Отправить PM | Цитировать amel27, проверяю тот батник по ссылке, пишет:
Error: The system was unable to find the specified registry key or value Error: The system was unable to find the specified registry key or value The system cannot find the file specified. The syntax of the command is incorrect. "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" или так HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\"Control\Session Manager\Environment" и ещё я обычно ControlSet001 юзаю, никогда не подводило, хотя понимаю что текущий сет правильней, но не в этом дело... ещё у меня английский дистр, поэтому некое "Мой компьютер" может глючить! Но не знаю в чём дело. ...предлагаешь зделать экспорт в временный кей! А ну я понял! Интересная идея! Забавно, надо подумать... |
------- Последний раз редактировалось semiono, 20-01-2010 в 21:14. Отправлено: 18:57, 20-01-2010 | #4 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата semiono:
|
||
Отправлено: 11:06, 21-01-2010 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Удаление строк в текстовом файле, как это сделать??? | VladZombie | Скриптовые языки администрирования Windows | 70 | 08-09-2020 13:28 | |
CMD/BAT - [решено] Сборка регфайла и фильтрация... | semiono | Скриптовые языки администрирования Windows | 6 | 23-01-2010 05:55 | |
Разное - Группировка строк в экселе | pva | Программирование и базы данных | 6 | 16-04-2009 12:41 | |
Разное - количество строк WinXP | Abracadabra | Хочу все знать | 7 | 11-02-2008 23:05 | |
добавления строк в файл | e9990638 | Автоматическая установка приложений | 5 | 18-01-2007 18:35 |
|