我正在使用BGInfo为我的公司做一些脚本,并试图弄清楚如何获取WMI查询的结果并将数学运算符应用到它。例如,我运行查询:如何在WMI查询结果上使用数学运算符?
SELECT AdapterRAM FROM Win32_VideoController
计算结果为
268435456 (bytes)
但是,我想,这个值才MB的形式,所以我想通过1,048,576分化这个结果得到
256 MB
有没有办法做到这一点?
我正在使用BGInfo为我的公司做一些脚本,并试图弄清楚如何获取WMI查询的结果并将数学运算符应用到它。例如,我运行查询:如何在WMI查询结果上使用数学运算符?
SELECT AdapterRAM FROM Win32_VideoController
计算结果为
268435456 (bytes)
但是,我想,这个值才MB的形式,所以我想通过1,048,576分化这个结果得到
256 MB
有没有办法做到这一点?
WQL
(WMI
使用的语言)只是SQL语言的一个子集,不支持算术运算符,有关详细信息,可以检查WQL documentation
。
由于@RRUZ提到,在WQL中不支持算术运算符。但是,在诸如PowerShell之类的修剪语言中,可以使用转换单位或乘数将值从字节更改为MB。
例如,
$adapterRAM = Get-WMIObject -Query "SELECT AdapterRAM FROM Win32_VideoController"
$adapterRAM.AdapterRAM/1MB
更新是根据下面的评论答案:
(Get-WMIObject -Query "SELECT AdapterRAM FROM Win32_VideoController").AdapterRam/1MB
如果Win32_VideoController的多个实例上面的查询结果,你必须索引到正确的实例。例如,
(Get-WMIObject -Query "SELECT AdapterRAM FROM Win32_VideoController")[0].AdapterRam/1MB
我会尝试这一点,但我正在从BGinfo.exe禁止我从查询的结果设定为任何类型的变量 –
检查我的更新 – ravikanth
@MattHintzke查询:您可以使用** VBScript文件**选项而不是** WMI Query **来执行包含变量和内容的VBScript代码。不过你必须把ravikanth的PowerShell例子转换成VBScript。 – Helen