使用选择字符串搜索文字字符串并提取部分字符串



$DeviceID的值是:"PCIVEN_8086&DEV_9D3A&SUBSYS_225617AA&REV_213&11583659&1&B0"

我正在尝试在.带有"选择字符串"的 INF 文件:

 Select-String -Path C:file.inf -Pattern "$DeviceID"

但它不会按原样获取字符串,它的"\V"有问题:

选择字符串 : La chaîne PCI\VEN_8086&DEV_9D3A&SUBSYS_225617AA&REV_21\3&11583659&1&B0 n'est pas une expression régulière valide: analyse de"PCI\VEN_8086&DEV_9D3A&SUBSYS_225617AA&REV_21\3&11583659&1&B0" - Séquenced'échappement \V non reconnue.Au caractère Ligne:15 : 5+ 选择字符串 -路径 $($_.全名(-模式"$($erreur.设备 ID("+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    + 类别信息 : 无效参数 : (:)[选择字符串], 参数异常    + FullQualifiedErrorId : InvalidRegex,Microsoft.PowerShell.Command.SelectStringCommand

对不起法国人,但它基本上说"字符串不是有效的正则表达式。转义序列 \v 无法识别"。

> 默认情况下,Select-String使用 .NET 正则表达式引擎。要执行简单的字符串匹配,请使用 -SimpleMatch 开关参数:

Select-String -Path C:file.inf -pattern "$DeviceID" -SimpleMatch

PowerShell 正在尝试进行正则表达式匹配。添加 -SimpleMatch 开关以查找$DeviceID中的文本字符串,而不添加正则表达式。

Select-String -Path C:file.inf -Pattern $DeviceID -SimpleMatch

我看到你已经有了答案,但还有另一个开关也可以做到这一点。

为了比较...

-列表

select-string -path "$TargeUNC*.ps1" -Pattern 'Get-WmiObject' -list | 
Select-Object -First 3
# Results
2018-01-15 Enable the Disk Cleanup tool on Windows Server.ps1:45:$wmiOS = Get-WmiObject -Class Win32_OperatingSystem
3D_chart.ps1:1:get-wmiobject win32_perfformatteddata_perfdisk_logicaldisk
7 cmdlet Hyper-V Tips.ps1:15:$vm = Get-WmiObject -Namespace rootvirtualizationv2 -Class 

-vs -简单匹配

select-string -path "$TargeUNC*.ps1" -Pattern 'Get-WmiObject' -SimpleMatch | 
Select-Object -First 3
# Results
2018-01-15 Enable the Disk Cleanup tool on Windows Server.ps1:45:$wmiOS = Get-WmiObject -Class Win32_OperatingSystem
3D_chart.ps1:1:get-wmiobject win32_perfformatteddata_perfdisk_logicaldisk
7 cmdlet Hyper-V Tips.ps1:15:$vm = Get-WmiObject -Namespace rootvirtualizationv2 -Class 

相关内容

  • 没有找到相关文章

最新更新