如何创建与格式表配合使用的PowerShell数据结构

时间:2018-10-08 03:05:34

标签: powershell class formattable

当我执行“ $ states2 | ft”时,我得到了:

Name                           Value
----                           -----
NY                             State
AZ                             State

我希望什么时候得到:

Name    Acres   Population   Founded  FullName
----    -----   ----------   -------  --------
NY        50           100      1645  New York
AK       100           512      1745  Alaska

我在做什么错了?

这是我的数据结构,以类的形式出现:

class State {
    [Int64]$Acres
    [Int64]$Population
    [Int16]$Founded
    [string]$FullName
    }

$States2 = @{}
$States2.AK = [State] @{Population = 512; Founded = 1745; Acres = 100; FullName = "Alaska"}

$States2.NY = [State]::new()
$States2.NY.Acres       = 50
$States2.NY.Population = 100
$States2.NY.Founded    = 1652
$States2.NY.FullName   = "New York"

预先感谢

1 个答案:

答案 0 :(得分:2)

您需要将缩写名称作为类定义的一部分:

class State {
    [string]Name
    [Int64]$Acres
    [Int64]$Population
    [Int16]$Founded
    [string]$FullName
}

$States2 = @{}
$States2.AK = [State] @{Name = "AK"; Population = 512; Founded = 1745; Acres = 100; FullName = "Alaska"}

$States2.NY = [State]::new()
$States2.NY.Name       = "NY" 
$States2.NY.Acres      = 50
$States2.NY.Population = 100
$States2.NY.Founded    = 1652
$States2.NY.FullName   = "New York"

如果只希望在$States2哈希表中显示,请执行以下操作:

$States2.Values |Format-Table