PowerShell RegEx для получения значения ключа реестра из файла .reg (reg export) - PullRequest
0 голосов
/ 18 января 2019

У меня есть скрипт PowerShell, который должен сравнивать два файла .reg (файлы экспорта reg). Я хочу предоставить имя ключа реестра и сравнить значение этого ключа в этих файлах. Моя проблема с регулярным выражением, чтобы выбрать только значение конкретного ключа ...

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

содержимое regfile (пример для тестирования):

"DWORD"=dword:fefefeff
"String"="agnhqorewthosdgfalsfalsbvoweirnfapjfpaqwogfjasgj"
"DWORD2"=dword:fefefefe
"qword"=hex(b):fa,ad,df,fa,ad,df,fa,ad

Код PowerShell:

$RegKeyName = "DWORD2"
$regex = ('"{0}"=(.*(?:(?!\n"[^\n"]+"=)\n.*)*)' -f [RegEx]::Escape($RegKeyName))
[regex]::Matches($regfilecontent ,$regex) | foreach { $_.groups[1].value }

ожидаемый результат, например, $ RegKeyName = DWORD2 должен быть: DWORD: fefefefe

фактический результат: DWORD: fefefefe "QWORD" = шестигранное (б): фа, объявление, ДФ, фа, объявление, ДФ, фа, объявление

1 Ответ

0 голосов
/ 18 января 2019

ОК, это было довольно просто, мне просто нужно было сначала преобразовать содержимое в правильную строку, а затем результат был таким, как ожидалось:

$regfilecontent = $regfilecontent |Out-String
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...