我希望列出结果表中项目的索引。
在这种情况下,我使用带有过滤器选项的get-aduser。
然后我使用带有-Property的format-table来仅显示我想要的属性。
我之前使用循环显示项目以及计数器来模拟索引,但这很麻烦,我希望它在表格中。
代码:
$search_param = read-host "Enter search string: "
$search_param = "*" + $search_param + "*" # Construct search param.
$search_result = Get-ADUser -Filter {Surname -like $search_param -or GivenName -like $search_param -or SamAccountName -like $search_param}
$search_result | format-table -Property GivenName,Surname,SamAccountName
如何在不使用某种循环的情况下让format-table显示项目索引/位置?即,是否有某种“隐藏”索引属性,我可以简单地提供给格式表?
答案 0 :(得分:2)
format-table
CmdLet -Property
参数可以是新的计算属性,请参阅Format-table帮助。
以下是Get-Process对象的计算索引示例。
$index=0
Get-Process | Format-Table -Property @{name="index";expression={$global:index;$global:index+=1}},name,handles
答案 1 :(得分:2)
ForEach-Object
cmdlet可用于为Format-Table
cmdlet创建计算的“索引”属性
例如:
$search_result | ForEach-Object {$index=0} {$_; $index++} | Format-Table -Property @{ Label="index";Expression={$index}; Width=5 },GivenName,Surname,SamAccountName
其他参考文献:
答案 2 :(得分:0)
在我看来,你不能,你需要使用Index属性扩展对象并将其包含在Format-Table
命令中。
答案 3 :(得分:0)
$procs = Get-Process
#option 1
$procs | Select @{N='Index'; E={$procs.IndexOf($_)}}, name, handles
#option 2
$procs | Format-Table -Property @{name="index";expression={$procs.IndexOf($_)}},name,handles