You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Powershell中提取CS:GO Demo文件内的de_前缀地图名称

用PowerShell从CS:GO Demo文件提取地图名称的解决方案

核心问题原因

CS:GO的Demo(.dem)是二进制格式文件,直接用Get-Content默认按文本格式读取会产生大量乱码,且头部内容中会出现多个含de_前缀的字符串,无法直接拿到有效地图名。

可行解决方案

代码实现

# 替换为你的demo文件实际路径
$demo = "C:\path\to\your\match.dem"
# 正则规则:匹配de_开头、仅含小写字母/数字/下划线、符合官方地图命名规范的字符串
$pattern = '\bde_[a-z0-9_]{3,15}\b'

# 仅读取Demo前1KB内容(头部元信息全部包含在内,无需读取整个大文件)
$rawHeader = [System.IO.File]::ReadAllBytes($demo)[0..1023]
# 转字符串后匹配所有符合规则的地图名,取第一个有效结果存入变量
$mapName = [Text.Encoding]::ASCII.GetString($rawHeader) | Select-String -Pattern $pattern -AllMatches | ForEach-Object { $_.Matches.Value } | Select-Object -First 1

代码说明

  • 直接读取二进制前1024字节而非按文本读整个文件,性能更高,也避免了乱码干扰
  • 正则添加了\b单词边界限制,不会匹配到乱码中拼接的半截de_字符串
  • 长度筛选规则适配所有官方竞技地图命名格式,返回结果纯净无多余字符
  • 如果需要匹配社区地图(如cs_、aim_前缀),可将正则修改为\b[a-z]{2,3}_[a-z0-9_]{3,15}\b即可

内容的提问来源于stack exchange,提问作者ad1k4h

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 14:36:02