Как создать структуру данных PowerShell, которая хорошо работает с таблицей форматов

Когда я делаю "$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"

Заранее спасибо


person chris    schedule 08.10.2018    source источник
comment
Это не полный ответ, но он довольно похож: stackoverflow.com/questions/20874464/   -  person mjsqu    schedule 08.10.2018


Ответы (1)


Вам нужно будет сделать сокращенное имя частью определения класса:

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
person Mathias R. Jessen    schedule 08.10.2018
comment
Спасибо большое Матиас! - person chris; 08.10.2018
comment
@chris Не за что! Если мой ответ решил вашу проблему, отметьте его принятым, нажав на галочку слева. - person Mathias R. Jessen; 08.10.2018