Windows Find Regex - findstr LookBehind
У меня есть эта строка:
DisplayName REG_SZ Paquete de controladores de Windows - Intel Corporation (iaStorA) HDC (07/22/2015 14.5.2.1088)
Который я взял из:
Reg Query HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall /s /v DisplayName
То, что я хочу, это точное название продукта: Paquete de controladores de Windows - Intel Corporation (iaStorA) HDC (07/22/2015 14.5.2.1
Я пытаюсь это:
PS> Reg Query HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall /s /v DisplayName | select -First 3 | findstr.exe /i /r /c:"(?<=REG_SZ\s*).*"
Но это не похоже на grep -Po
в Linux и не могу понять это.
1 ответ
Итак, у вас есть эта строка.,,
DisplayName REG_SZ Paquete de controladores de Windows - Intel Corporation (iaStorA) HDC (07/22/2015 14.5.2.1088)
Вы должны закончить с этой строкой.,,
Paquete de controladores de Windows - Intel Corporation (iaStorA) HDC (07/22/2015 14.5.2.1)
Рассматривать.,,
Подумайте об использовании Get-ItemProperty с применимыми параметрами и параметрами для получения информации реестра вместо Reg Query.
Get-ItemProperty -Path Registry::HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
Другой метод PowerShell
Используйте функции Replace () и Trim(), чтобы разобрать, а затем очистить нужную вам строку.
Пример использования функций Powershell Replace () и Trim()
$s = "DisplayName REG_SZ Paquete de controladores de Windows - Intel Corporation (iaStorA) HDC (07/22/2015 14.5.2.1088)" $s = $s.replace('DisplayName REG_SZ', '').Trim() $s