Powershell将不同列的多个数组添加到主数组

时间:2016-04-26 06:24:53

标签: arrays powershell multidimensional-array

代码:

$arr1 = "" | select blabla,blabla2
$arr2 = "" | select blabla3,blabla4

$arrtotal = @()
$arrtotal += $arr1
$arrtotal += $arr2

$arrtotal

打印输出:

  

blabla blabla2

     

然而,当尝试单独打印两个单元格时(不是一个接一个地打印,而只是在PS ISE中选择并按F8):

$arrtotal[0]
  

blabla blabla2

     
$arrtotal[1]
  

blabl3 blabla4

     

EDITED: 我打算在打印$ arrtotal时打印两个数组列。不只是其中之一。更进一步,我不清楚为什么单独打印它们,但一个接一个地工作,即“$ arrtotal [0]; $ arrtotal [1]”没有。

EDIT2:

这是我的原始代码。 所有这一切都是查询Sparkpost的API,以便构建自定义HTML报告。

$test = (Invoke-WebRequest "https://api.sparkpost.com/api/v1/metrics/deliverability?metrics=count_injected,count_sent,count_bounce,count_accepted&from=2016-01-01T08:00&to=2016-04-25T08:00" -Headers @{"Authorization"="xxxxxxxxxxxxx";"Content-Type"= "application/json"}).content | ConvertFrom-Json

$fill1 = "" | select EmailsReceived,EmailsSent,EmailsBounced

$fill1.EmailsReceived = $test.results.count_injected
$fill1.EmailsSent = $test.results.count_accepted
$fill1.EmailsBounced = $test.results.count_bounce

$fill2 = "" | select DeliveredPrecentage,BouncesPrecentage
$fill2.DeliveredPrecentage = [math]::round($test.results.count_accepted/$test.results.count_injected*100,2)
$fill2.BouncesPrecentage = [math]::round(($test.results.count_bounce)/$test.results.count_accepted*100,2)

$arr = @()

$arr += , $fill1
$arr += , $fill2

我的问题是我不能简单地将$ arr转换为HTML文件,就像我以前做过很多次一样。

$arr
  

EmailsReceived EmailsS​​ent EmailsBounced

     
       107        107            12

另一方面

$arr | Format-List
  

EmailsReceived:107 EmailsS​​ent:107 EmailsBounced:12

     

DeliveredPrecentage:100 BouncesPrecentage:11.21

我想从所有内容制作HTML,以便稍后通过电子邮件发送。我怎么能把它全部管好?

1 个答案:

答案 0 :(得分:0)

因为@RunWith(MockitoJUnitRunner.class) public class FooTest { @Mock private ClassA classA; @InjectMocks private Foo foo = new Foo(); //Test methods } $arr1是两个不同的$arr2。您可以使用Format-List cmdlet在列表中打印整个PSCustomObjects

array

输出:

$arrtotal | Format-List

回答您的修改:

对我来说这看起来像是一条记录,试试这个:

blabla  : 
blabla2 : 

blabla  : 
blabla2 : 

注意:我还更改了逻辑,使用散列表上的$record = [PsCustomObject]@{ EmailsReceived = $test.results.count_injected EmailsSent = $test.results.count_accepted EmailsBounced = $test.results.count_bounce DeliveredPrecentage = [math]::round($test.results.count_accepted/$test.results.count_injected*100,2) BouncesPrecentage = [math]::round(($test.results.count_bounce)/$test.results.count_accepted*100,2) } $record | convertto-html | out-file file.html 类型转换将对象创建为更为人熟知的方法。