Powershell - 格式锯齿阵列输出

时间:2013-02-08 05:39:12

标签: powershell

所以我认为这对PowerShell来说很简单,但我似乎无法弄清楚如何将我的数组输出作为列。以下是我的剧本。

$Table = @()

$Employees = Get-ADUser -SearchBase "OU=Emplyoees,DC=mydomain,DC=com" -Filter * -Properties * | ?{$_.telephoneNumber -ne $Null}

ForEach($User in $Employees){$Table += @($User.Name,$user.telephoneNumber)}

($Table)

输出类似于:

用户1
PhoneNumber1
用户2
PhoneNumber2


我希望它看起来像是:

名称******中国
用户1 PhoneNumber1
用户2 PhoneNumber2

任何帮助都会很棒

1 个答案:

答案 0 :(得分:3)

试试这个:

ForEach($User in $Employees){$Table += ,@($User.Name,$user.telephoneNumber)} #NOTE THE COMMA HERE
$table | % { $_ -join '`t' } # the `t is a tab, but you can use whatever you want

评论后编辑:

如果只需要一个可以尝试的布局:

 $table | % {  "{0,-20}{1,20}" -f $_[0],$_[1]  } #the 2nd value in {} is the relative cursor position the sign left o right alignment

但为什么不使用$Employees变量来显示结果:

$Employees = Get-ADUser -SearchBase "OU=Emplyoees,DC=mydomain,DC=com" -Filter * -Properties * | 
?{$_.telephoneNumber -ne $Null} | select name, telephonenumber | ft