Powershell - 从 cab 文件中提取 KB 名称

Powershell - Extract KB name from cab file

我正在尝试从 cab 文件推断 KB 名称,因为它需要在脚本中使用以验证补丁安装。

文件名可以不同,但​​模式似乎总是像 KB1234567(KB + 7 位)。

我已经使用以下方法解决了这个问题,但是我一直在寻找更好的方法以防这种情况发生变化:

PS C:\Users\user> $name
IE11-Windows6.1-KB4089187-x64.cab
PS C:\Users\user> $name.Substring($name.indexof("KB")).TrimEnd("-x64.cab")
KB4089187

正如@JeffZeitlin 在他的评论中所说,如果名称遵循一致的模式,您可以使用其他一些技术。但是,如果全名不标准,而是某处包含KBxxxxxxx,则可以使用Select-String这样查找:

$name = "IE11-Windows6.1-KB4089187-x64.cab"

$namesplit = (Select-String -InputObject $name -Pattern "KB\d{7}").Matches[0].Value