如何使用我输入的变量和数据在powershell中创建表

时间:2014-10-21 05:33:14

标签: powershell hashtable

我正在尝试做这样的事情(试图使它看起来像一张桌子,但是没有使用markdown,html或一堆空格):

列1

位置信息
位置#
地点名称
位置电话
位置地址

Column2

[空白]
1
NYC
789-987-1234
12 Some Blvd

栏3

网络信息
位置八位字节 外部知识
其他一些知识产权 更多Ips

Column4

[空白]
345个
10.89.52.468
10.346.345.1
10.326.345.2

我尝试过创建新对象,将数组/哈希转换为csv,然后又回来了,我没有运气。我已经阅读了一些其他线程,但它们都包含了已经创建对象的cmdlet的使用,并且正在使用它。我认为从csv转换成了那个,我认为,但是如何将它转换回来可能会被关闭。因此上表是6列和5行,顶行具有列2和4是空白的。

我真的很想学习如何做到这一点,因为我可能也会将它用于其他任务。

1 个答案:

答案 0 :(得分:1)

我相信你正在努力实现这样的目标? :

$col1=@("Location info","Location #","Location name","Location phone","Location address");
$col2=@("","1","NYC","789-987-1234","12 Some Blvd");
$col3=@("Network info","Location Octet","External IP","Some other IP","More Ips");
$col4=@("","345","10.89.52.468","10.346.345.1","10.326.345.2");

$hash=@{"Column1"=$col1;"Column2"=$col2;"Column3"=$col3;"Column4"=$col4};
$obj = New-Object PSObject -Property $hash
$obj|Format-Table -Wrap -AutoSize

您将获得指定的数据。您可以使用-ExpandProperty“Column1”(例如,如果要扩展其所有值)。如果要创建数据的html表,可以使用ConvertTo-Html。

但是,我会考虑在另一个方面构建数据。如何将这些数据保存在单独的对象中而不是以这种方式格式化?

你可以,例如有一组对象,其属性表示您想要的内容。 例如。具有代表性数据的对象:

 $obj = new-object PSObject -Property @{"Location info"="My loc"; "Location #"="My location"}
 $obj2 = new-object PSObject -Property @{"Location info"="My loc2"; "Location #"="My location2"}
 $myLocations = @($obj,$obj2);

这更具代表性,您可以为您想要的属性播放和格式化$ myLocations。