【问题标题】:Displaying Contents and Structure of an array显示数组的内容和结构
【发布时间】:2016-05-05 05:57:42
【问题描述】:

显示数组的内容和结构

PS C:\> $a = 1,2,3
PS C:\> $b = 4,5,6
PS C:\> $c = $a,$b
PS C:\> $c
1
2
3
4
5
6

$c 不是数字数组,而是数组数组。但是当我显示它的内容时,这个结构是不可见的。

是否有任何内置方法可以显示数组的内容以保留结构?也许是这样的:

@( @(1, 2, 3), @(4, 5, 6) )

【问题讨论】:

  • 您当前的代码不会创建数组数组。 Powershell 将“为您修复它”,并使$c 成为单个串联数组。见stackoverflow.com/questions/11138288/…
  • Format-Custom -InputObject $c -Expand CoreOnly
  • @Eris 你不对。 OP 代码真正创建了数组数组。

标签: powershell


【解决方案1】:

内置方式显示为 PetSerAl 在 cmets 中回答是使用 Format-Custom cmdlet。它使用默认或自定义视图格式化输出。阅读更多MSDN

代码(由 PetSerAl 回答)是:

Format-Custom -InputObject $c -Expand CoreOnly

如果您希望以您刚才提到的格式显示,那么您需要编写自己的 PowerShell 代码 sn-p。请注意,您也可以使用 Pipeline 编写相同的内容。我进行了扩展以提高可读性。

$a = 1,2,3
$b = 4,5,6
$c = $a,$b

$arrayForDisplay = "@( "
foreach($array in $c)
{
    $arrayForDisplay += "@( "
    foreach($arrayelement in $array)
    {
        $arrayForDisplay += $arrayelement.ToString() + ","
    }

    $arrayForDisplay = $arrayForDisplay -replace ".$"
    $arrayForDisplay += " ), "
}
$arrayForDisplay = $arrayForDisplay.Trim() -replace ".$"
$arrayForDisplay += " )"

$arrayForDisplay

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多