2016-04-26 147 views
0

代碼:Powershell的添加不同列的多個陣列的主陣列

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

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

$arrtotal 

打印:

布拉布拉blabla2


然而,試圖打印兩個小區時單獨(不是一個接一個,而是簡單地在PS ISE中選擇並按F8):

$arrtotal[0] 

布拉布拉blabla2


$arrtotal[1] 

blabl3 blabla4


EDITED: 我希望在打印$ arrtotal時打印兩列數組。不只是其中之一。更進一步,我不清楚爲什麼印刷他們單獨工作,但一個接一個,即「$ arrtotal [0]; $ arrtotal [1]」不。

編輯2:

這是我的原始代碼。 它所做的只是查詢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電子郵件sSent:107 EmailsBounced:12

DeliveredPrecentage:100 BouncesPrecentage:11.21

我想,使HTML出來的一切,所以我可以通過電子郵件稍後發送。我如何管這一切?

+0

問題是什麼?你能指望什麼? –

+0

我將編輯我的帖子。 – JustAGuy

+0

添加缺少的聲明$ arrtotal = @() – JustAGuy

回答

0

其因爲$arr1$arr2是兩個不同的PSCustomObjects

$arrtotal | Format-List 

輸出:

blabla : 
blabla2 : 

blabla : 
blabla2 : 

回答您的編輯:

這看起來像一個記錄您可以使用Format-List cmdlet的列表中的打印整個array我試試這個:

$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 

注意:我還更改了邏輯以使用PsCustomObject類型轉換在散列表上使用更爲熟知的方法創建對象。

+0

如果我想做一個$ arrtotal | convertto-html | out-file file.html,如何輸出所有列? – JustAGuy

+0

你確實有兩個對象,每個對象都有兩個不同的列。這取決於你想要的輸出。另外,也許你可以添加一些其中包含一些數據的例子。 –

+0

添加了我的原始代碼。希望清除它。 – JustAGuy