【发布时间】:2015-01-02 17:31:26
【问题描述】:
我正在尝试根据我下载的 KB/MSU 包自动化我的 Microsoft 更新过程。我有一个 WMIC csv 文件,我可以根据简单的 If else 语句安装它。我想使用列表从下载的文件中提取“KBXXXXXX”并将其与已安装的 KB 列表进行比较,然后发现缺少的内容。
KB 安装列表(WMIC 输出):
KB123456
KB234567
KB345678
已下载的 KB 文件列表格式 $KBUpdateList: 姓名
WINDOWS6.1-KB2533552-X64.MSU
WINDOWS6.1-KB2533552-X86.MSU
WINDOWS6.1-KB2539635-X64.MSU
Windows6.1-KB958488-v6001-x64.MSU
这是我无法提取 KB 编号的内容:
PowerShell 脚本列出所选文件夹下的 MSU 文件:
$Dir = get-childitem $folder -recurse
$KBUpdateList = $Dir | where {$_.extension -eq ".msu"}
$KBUpdatenames = $KBUpdateList | format-table name
$KBNumberonly = $KBUpdateList.split("-")[1]
拆分失败,我找不到修复方法。我只想返回 KBXXXX 编号,以便可以运行后面的 foreach 语句。谢谢你
【问题讨论】:
-
对于初学者不要这样做
$KBUpdatenames = $KBUpdateList | format-table name。 从不将来自Format-[anything]的输出分配给变量,因为它会严重破坏输出。Format-[anything]用于美观的控制台输出,仅此而已。 -
很高兴知道...谢谢
标签: powershell text extract filenames