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)
对不起,我的英语不好=)
WMIC 使用 SQL 方言。空字符串(0 长度字符串)与 NULL(无值)不同。
wmic nicconfig where "MACAddress is not null" get ...
Run Code Online (Sandbox Code Playgroud)