在 Powershell 中搜索匹配的地图名称

Searching for a matching map name in Powershell

抱歉,我真的不知道如何正确地问这个问题。 我想在 Powershell 中解析 CS:GO 演示文件,我想从中检索地图名称。

我这样打开 dem 文件: 获取内容 $demo | Select - 前 1 | Select-字符串-模式'de_'

我得到这样的回应:


HL2DEMO    đ5  MatchServer I.                                                                                                                                                                
                                                                        GOTV Demo                                                                                                                           
                                                                                                                                de_mirage                                                                   
                                                                                                                                                                                        csgo                
                                                                                                                                                                                                            
                                     @#A  g   uÔ ~ř˙˙                                                                                                                                                   
            ą     Vđk (8wEÄü€ŢMĐhZăU    X@`śh u   <zcsgo‚   de_mirageŠ ’sky_dustšGOTV¨ ° ¸      ( 0 ž


我只想获取 de_mirage 作为变量。因此,如果地图发生变化,那么它将是 de_dust2 或 de_inferno 等等。有人知道这个的解决方案吗?

谢谢!

当使用 Get-Content 时,每行一次通过管道 一个,除非指定 -Raw 开关。我之所以提出这个问题,是因为您正在使用 Select cmdlet。当您指定参数 -First,值为 1 时,您只是抓取第一行,然后尝试在第一行中查找模式。

这是我对 RegEx 的拙劣尝试:

Get-Content -Path $demo | Where-Object -FilterScript { $_ -match 'de_\w+' }
$Matches[0]

。 . .其中 $Matches Automatic Variable 包含所有匹配的 RegEx 模式(如名称所示)以数组格式存储;我们使用索引号来引用值。就像您所做的那样,在搜索模式时,这也可以通过管道传输到 Select-String