如何使用wmic列出产品信息?

How to list product info with wmic?

我已经尝试了几个在网上找到的关于如何使用 wmic 列出产品信息的示例,但直到现在都没有成功。

我在下面看到的最后一次尝试是基于 的代码,但出现了一个错误:

No Instance(s) Available

@echo off
for /f "skip=1 delims==" %%a in (
     'wmic product where "Name like 'Java'" get name /format:table'
) do (
   for /f "tokens=* delims=" %%# in ("%%a") do  set PROD=%%a
) 
echo %PROD%

pause

有解决办法吗?

您需要在 like WQL operator 中使用一些通配符来确定给定的字符串是否与指定的模式匹配,例如如下:

@ECHO OFF
SETLOCAL EnableExtensions EnableDelayedExpansion
for /f "usebackq skip=1 delims==" %%a in (
    `wmic product where "Name like 'Java%%'" get name /format:table`
) do (
   for /f "tokens=* delims=" %%# in ("%%a") do  (
     set "PROD=%%~#"
     echo !PROD!
   )
)
echo PROD (final value)=%PROD%

示例输出:

Java 8 Update 151
Java 8 Update 151 (64-bit)
Java Auto Updater
PROD (final value)=Java Auto Updater

另见 https://blogs.technet.microsoft.com/heyscriptingguy/2012/07/13/use-the-like-operator-to-simplify-your-wql-queries/