【问题标题】:How can I create a table in powershell using variables and data I input如何使用我输入的变量和数据在 powershell 中创建表
【发布时间】:2014-10-21 05:33:13
【问题描述】:

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

第 1 列

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

第2列

[空白]
1
纽约
789-987-1234
一些大道 12 号

第 3 列

网络信息
位置八位组
外部IP
其他一些IP
更多 Ips

第 4 列

[空白]
345
10.89.52.468
10.346.345.1
10.326.345.2

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

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

【问题讨论】:

  • 展示你到目前为止所做的事情并解释其中的问题。
  • 这些数据是否来自 btw?或者你想用静态手动输入数据创建一个对象?
  • 手动输入数据。或者从长远来看来自 csv 文件。

标签: powershell hashtable


【解决方案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 以获得您想要的属性。

【讨论】:

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