我试图在系统上获得主监视器的分辨率。所以
get-wmiobject -class win32_videocontroller
将返回包含分辨率的单个对象或对象列表(术语可能不正确)。如果要拉出单个值,例如.currenthorizontalresolution,则必须指定
(get-wmiobject -class win32_videocontroller).currenthorizontalresolution
或
(get-wmiobject -class win32_videocontroller)[0].currenthorizontalresolution
取决于您的系统是否具有单个监视器,第一个工作的位置,还是多个监视器,其中第二个工作。
我想使用单个表达式...但无法正确使用语法。 我已经尝试了很多变化,但是我无法弄清楚使用单行来获得第一个(或唯一)监视器的分辨率的语法。
要明确这是一个PowerShell语法问题,而不是wmi问题。
EBGreen建议
(,(get-wmiobject -class win32_videocontroller))[0].currenthorizontalresolution
但是会返回
1366
在具有单个监视器和
的系统上1280
1920
在具有两个显示器的系统上。方向是正确的,我尝试了类似的选择但不太正确。
答案 0 :(得分:5)
您可以强制它始终使用'@'
运算符返回数组:
@(get-wmiobject -class win32_videocontroller)[0].currenthorizontalresolution
答案 1 :(得分:0)
我相信这会做你想做的事情:
(,(get-wmiobject -class win32_videocontroller))[0].currenthorizontalresolution