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

时间:2018-04-09 11:37:01

标签: regex windows powershell windows-update

我正在尝试从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

1 个答案:

答案 0 :(得分:2)

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

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

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