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.


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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.