WMIC - 如何检查是否返回空值?

raf*_*dev 3 windows batch batch-file wmic cmd.exe

我正在制作一个批处理文件来制作计算机日志(在我的工作中格式化 PC 之前我需要保存一些信息......)

所以我找到了一些命令来创建这个日志,见:

rem -- Windows Version
wmic OS get Caption, OSArchitecture, ServicePackMajorVersion /format:htable > "%~dp0Config %computername%.html"

rem -- User Account
wmic USERACCOUNT get Caption,Name,PasswordRequired,Status /format:htable >> "%~dp0Config %computername%.html"

rem -- Installed Programs
wmic product get Description, InstallDate, Name, Vendor, Version /format:htable >> "%~dp0Config %computername%.html"
Run Code Online (Sandbox Code Playgroud)

问题出在这个命令上:

wmic nicconfig get Description, MACAddress, IPAddress, IPSubnet, DefaultIPGateway, DNSServerSearchOrder, DHCPEnabled /format:htable >> "%~dp0Config %computername%.html"
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我只需要显示具有Mac 地址的适配器...

在其他情况下,我这样做是为了只显示启用适配器:

wmic NIC where NetEnabled=true get Name, Speed, PNPDeviceID /format:htable >> "%~dp0Config %computername%.html"
Run Code Online (Sandbox Code Playgroud)

但是现在,我需要检查非空值。如何检查返回值是否为空?只取具有 Mac 地址的值?

我试试这个,但不起作用:

wmic nicconfig where MACAddress!='' get Description, MACAddress, IPAddress, IPSubnet, DefaultIPGateway, DNSServerSearchOrder, DHCPEnabled /format:htable >> "%~dp0Config %computername%.html"
Run Code Online (Sandbox Code Playgroud)

对不起,我的英语不好=)

dbe*_*ham 5

WMIC 使用 SQL 方言。空字符串(0 长度字符串)与 NULL(无值)不同。

wmic nicconfig where "MACAddress is not null" get ...
Run Code Online (Sandbox Code Playgroud)