如何让powershell始终返回一个列表

时间:2015-04-09 16:33:20

标签: powershell

我试图在系统上获得主监视器的分辨率。所以

get-wmiobject -class win32_videocontroller

将返回包含分辨率的单个对象或对象列表(术语可能不正确)。如果要拉出单个值,例如.currenthorizo​​ntalresolution,则必须指定

(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

在具有两个显示器的系统上。方向是正确的,我尝试了类似的选择但不太正确。

2 个答案:

答案 0 :(得分:5)

您可以强制它始终使用'@'运算符返回数组:

@(get-wmiobject -class win32_videocontroller)[0].currenthorizontalresolution

答案 1 :(得分:0)

我相信这会做你想做的事情:

(,(get-wmiobject -class win32_videocontroller))[0].currenthorizontalresolution