我需要将属性传递给cmdlet。也就是说,我可能会使用一个调用
$SelList = "ProcessName,Handles" 然后
get-process | select $sellist--这是失败的。我的假设是这应该是一个字符串数组,而不是一个字符串。这是在函数调用中完成的,因此下一次调用可能会使用
$SelList = "ProcessName,Handles,ID"传递单个值,例如$SelList = "ProcessName"似乎可以工作。我的假设是我(真的,真的)忽略了这里的一些东西。是否使用了"Select-Object“中的一个小ForEach循环?这看起来有点过头了,但(如上所述)我确信我忽略了一些东西。
发布于 2017-02-22 04:44:45
那么为什么不传入一个数组呢?
$filter = @('ProcessName','Handles','ID')
get-process | select $filter此外,Get-Help Select-Object还揭示了以下内容:
Select-Object [[-Property] <Object[]>]这意味着它接受数组
发布于 2017-02-22 12:01:10
只需像这样将列表值枚举到数组中,@()就不是必需的了:
$filter = 'ProcessName','Handles','ID'
get-process | select $filter发布于 2017-02-22 05:48:02
答案是数组就是这样做的方法。所以$SelList =@(‘进程名’,‘句柄’) ...在我的例子中,这不能解决问题,因为传递数组仍然失败。然而,这是一个不同的问题。
https://stackoverflow.com/questions/42377570
复制相似问题