如何使用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
我已经尝试了几个在网上找到的关于如何使用 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