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