Windows Find Regex - findstr LookBehind

1

Saya punya string ini:

DisplayName    REG_SZ    Paquete de controladores de Windows - Intel Corporation (iaStorA) HDC  (07/22/2015 14.5.2.1088)

Yang saya ambil dari:

Reg Query HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall /s /v DisplayName

Apa yang saya inginkan adalah nama persis produk: Paquete de controladores de Windows - Intel Corporation (iaStorA) HDC (07/22/2015 14.5.2.1

Saya mencoba ini:

PS> Reg Query HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall /s /v DisplayName | select -First 3 | findstr.exe /i /r /c:"(?<=REG_SZ\s*).*"

Tapi itu tidak seperti grep -Po di Linux dan tidak bisa mengetahuinya.

aDoN
sumber
Anda mencampur perintah powershell dan file batch. Lihat ss64.com/nt/findstr.html untuk definisi regexp findstr.
DavidPostill

Jawaban:

0

Jadi Anda memiliki string ini. . .

DisplayName    REG_SZ    Paquete de controladores de Windows - Intel Corporation (iaStorA) HDC  (07/22/2015 14.5.2.1088)

Anda harus mengakhiri dengan string ini. . .

Paquete de controladores de Windows - Intel Corporation (iaStorA) HDC  (07/22/2015 14.5.2.1)

Mempertimbangkan. . .

Pertimbangkan untuk menggunakan Dapatkan-BarangProperti dengan opsi dan parameter yang berlaku untuk mendapatkan informasi registri, bukan Pertanyaan Reg .

Get-ItemProperty -Path Registry::HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall

Metode PowerShell lainnya

Menggunakan Menggantikan() dan Memangkas() berfungsi untuk menguraikan dan kemudian membersihkan string yang Anda butuhkan.

Powershell Menggantikan() dan Memangkas() contoh fungsi

$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

Verifikasi Tes Saya

enter image description here


Sumber Daya Lebih Lanjut

Pimp Juice IT
sumber