在 wmic 中,'-' 是特殊字符。如何使用负数进行搜索?就像
wmic volume where serialnumber=-1874012763
因为 '-' 是特殊字符,所以这个命令不起作用。
如何为 wmic 中的搜索分配负数?
Win32_Volume 类中的 SerialNumber 值是一个无符号整数 (uint32),无法使用 WMIC 查询无符号整数值,因为您无法转换该值,您只能列出所有值:
wmic /namespace:\\root\cimv2 path Win32_Volume get SerialNumber /value
据我所知,您可以通过编写脚本来克服查询无符号整数值的问题。例如,使用 VBS 查询无符号整数值“-1435665788”(我的系统 C 驱动器):
Option Explicit
Const SN_VAL=-1435665788
Dim oWMI, oQRY, oItm, sComp, sMsg
sComp = "."
Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate,authenticationLevel=pktPrivacy}!\\" & sComp & "\root\cimv2")
Set oQRY = oWMI.ExecQuery("select * from Win32_Volume")
For Each oItm In oQRY
If oItm.SerialNumber = SN_VAL Then
MsgBox " DriveLetter: " & oItm.DriveLetter & vbCrLf & _
" SerialNumber: " & oItm.SerialNumber, vbOkOnly, "WMI Results"
End If
Next
Set oQRY = Nothing
Set oWMI = Nothing
WScript.Quit(0)
以上提示给定无符号整数值的驱动器号和序列号。希望这可以帮助 ;)
不确定该示例是否正确,因为根据文档,此属性是 uint32。
无论如何,为了逃避这种行为,我会尝试使用:
wmic volume where (serialnumber=-1874012763)
双引号的值;
wmic volume where serialnumber="-1874012763" get ...