2015-09-30 30 views
0

我有一個SQL查詢,看起來像這樣的結果:PowerShell的 - 的DataRow數組

$result1 | get-member 

TypeName: System.Data.DataRow 

Name MemberType Definition               
---- ---------- ----------               
. . . 
DATE Property System.DateTime DATE {get;set;}        
FCO Property System.String FCO {get;set;}       
LS  Property System.String LS {get;set;}         
TCO Property System.UInt32 TCO {get;set;} 


$result1 
#multiple lines similar to this 
DATE : 29/09/2015 00:00:00 
LS : c-am1 
TCO : 8059 
FCO : 0 

我需要得到這個到一個數組這樣的:

$Data = @" 
Date, LS, TCO, FCO 
[the contents of the $result1 object goes here under the relevant headings] 
[example] 
29/09/2015,c-am1,8059,0 
29/09/2015,c-am2,5985,3 
"@ 

這讓我可以將它傳遞給ConvertTo-AdvHTML功能https://community.spiceworks.com/scripts/show/2448-create-advanced-html-tables-in-powershell-convertto-advhtml

$Data = $Data | ConvertFrom-Csv 
$HTML = $Data | ConvertTo-AdvHTML  

我敢肯定有一個簡單的方法來做到這一點,BU t找不到它。我怎樣才能做到這一點?

+0

你'$ Data'例子不是一個數組,這是一個herestring。 –

回答

2

你說你想把你的數據放入一個數組,然後在一個字符串中顯示你的數據的例子。如果您正在按照ConvertTo-AdvHTML鏈接上的示例進行操作,那麼這是一個不必要的步驟,因爲您在result1中已經有一個對象數組。你所需要做的就是這個;

$HTML = $result1 | ConvertTo-AdvHTML 

您只需將以上代碼添加到ConvertTo-AdvHTML的任何開關即可。 鏈接中示例的第一步只是讓作者可以顯示一個自包含的示例。

+0

乾杯,但'$ HTML = $ result1 | ConvertTo-AdvHTML'導致腳本掛起。 我嘗試使用'foreach $ res $ result1 {.. etc ..}創建$ data'字符串',並創建了表,但是每行包含一個元素的 ,每個包含數字58? 只有當我添加'$ Data = $ Data | ConvertFrom-Csv'它按預期工作。 – IGGt

0

的方式我終於得到這個工作是:

$Data = @() 
$Data += "DATE,LS,TCO,FCO" 

$a=0 
foreach($res in $result1) 
    { 
     $ed = $res.DATE 
     $ls = $res.LS 
     $tc = $res.TCO 
     $fc = $res.FCO 

     $Data += [string]"[row:white]$ed,$ls,$tc,$fc" 

     $a++ 
    } 

$Data = $Data | ConvertFrom-Csv 
$html = $Data | ConvertTo-AdvHTML