【问题标题】:Viewing a list of Installed Hotfixes/Patches using wmic (HotfixID, InstalledOn and Description)使用 wmic 查看已安装的修补程序/补丁列表(HotfixID、InstalledOn 和描述)
【发布时间】:2022-01-02 00:43:18
【问题描述】:

我发现this 发布了关于使用wmic qfe list full 获取已安装修补程序列表的帖子,@Hackoo 回复如下:

@echo off
Title wmic to get HotfixID
Setlocal EnableDelayedExpansion
echo "patches" : {
set "patches=wmic qfe get HotfixID"
for /f "skip=1" %%i in ('%patches%') do for /f "delims=" %%j in ("%%i") do (
    set /a count=count+1
    echo "!count!" : "%%j",
)
echo }

这绝对没问题,但是否也可以合并 DescriptionInstalledOn wmic 信息,以便输出显示以下内容:

HotfixID InstalledOn 说明

使用上面的代码,我可以单独获取每个代码,但不能全部一起获取,因为 InstalledOn / Description 似乎重复了第一个值。

然后,我超出了我的知识水平并尝试了以下方法(不起作用):

for /f "tokens=1,2,3 skip=1 delims=," %%a in ('%SystemRoot%\System32\wbem\wmic.exe qfe get HotfixID,InstalledOn,Description') do (
    set "hotfix_number=%%~a"
    set "hotfix_installed=%%~b"
    set "hotfix_description=%%~c"
)
echo %hotfix_number% installed on %hotfix_installed% - %hotfix_description%

希望您能提供帮助。

【问题讨论】:

    标签: windows batch-file wmic hotfix


    【解决方案1】:

    这有帮助吗?

    @For /F "Skip=2 Tokens=1,* Delims=," %%G In ('%SystemRoot%\System32\wbem\WMIC.exe QFE Get Description^, HotFixID^, InstalledOn /Format:CSV 2^>NUL') Do @For /F "Tokens=1-3 Delims=," %%I In ("%%H") Do @Echo %%J installed on %%K - %%I
    

    【讨论】:

    • 绝对!谢谢你。我想我可以通过为每个变量定义 3x 标记来获得描述、InstalledOn 和 HotfixID,所以我的方法至少是正确的(哈哈)。非常感谢。
    • 您介意解释一下2^>nul 部分的用途,以及为什么您似乎使用似乎不需要转义的插入符号“^”来转义字符吗?
    • 运行没有插入符号的代码,^,并告诉我那些逗号,, 和/或重定向,>,字符不需要转义!然后使用您喜欢的研究方法来了解1>2>NUL 是什么,然后尝试自己解决,而不是仅仅寻找。
    • 据我所知2>nul>nul 相同。至于逗号前面的转义字符,我只问过,因为我从未见过在获取多个值时使用它们的 wmic 命令,这就是我问的原因..
    • 它与>nul 不同,后者是1>nul 的简写。请打开您喜欢的搜索引擎,然后搜索术语+"2>NUL"
    猜你喜欢
    • 2021-04-27
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 2011-04-07
    • 1970-01-01
    相关资源
    最近更新 更多