2013-06-11 67 views
1

我正在使用BGInfo为我的公司做一些脚本,并试图弄清楚如何获取WMI查询的结果并将数学运算符应用到它。例如,我运行查询:如何在WMI查询结果上使用数学运算符?

SELECT AdapterRAM FROM Win32_VideoController 

计算结果为

268435456 (bytes) 

但是,我想,这个值才MB的形式,所以我想通过1,048,576分化这个结果得到

256 MB 

有没有办法做到这一点?

回答

2

WQLWMI使用的语言)只是SQL语言的一个子集,不支持算术运算符,有关详细信息,可以检查WQL documentation

0

由于@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 
+0

我会尝试这一点,但我正在从BGinfo.exe禁止我从查询的结果设定为任何类型的变量 –

+0

检查我的更新 – ravikanth

+0

@MattHintzke查询:您可以使用** VBScript文件**选项而不是** WMI Query **来执行包含变量和内容的VBScript代码。不过你必须把ravikanth的PowerShell例子转换成VBScript。 – Helen