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