2017-08-24 56 views
0

陣列我想從一系列的字符串,已經從輸出拉的創建帶有標題的表格。我已經使用這個......PowerShell的轉字符串與標題

$Scopearray = @("$server","$ip","$ScopeName","$Comment") 

要關閉此...

$ip = $Trimmed[0] 
$server = $Trimmed[1] 
$ScopeName = $Trimmed[2] 
$Comment = $Trimmed[3] 

進入這個:

PS C:\WINDOWS\system32> $Scopearray 
MyServer.domain 
10.1.1.1 
NameofScope 
ScopeDetails 

但我需要將其轉換成一個表,像這樣:

Table Example

我試過以下,以及其他多維例子copule,但我清楚地失去了一些東西根本。

$table = @() 
foreach ($instance in $Scopearray) { 
$row = "" | Select ServerName,IP,ScopeName,Comment 
$row.Heading1 = "Server Name" 
$row.Heading2 = "IP Address" 
$row.Heading3 = "Scope Name" 
$row.Heading4 = "Comment" 
$table += $row 
} 
+0

你爲什麼不創建foreach循環內的對象並將該對象添加到數組列表。在循環外部聲明arraylist。在循環內部,您仍然可以執行修剪操作並將該值分配給該對象。說得通? –

回答

0

從輸入數據創建對象:

... | ForEach-Object { 
    New-Object -Type PSObject -Property @{ 
     'Server Name' = $Trimmed[1] 
     'IP Address' = $Trimmed[0] 
     'Scope Name' = $Trimmed[2] 
     'Comment'  = $Trimmed[3] 
    } 
} 

在PowerShell中v3和較新的,你可以通過使用[PSCustomObject]式加速器簡化:

... | ForEach-Object { 
    [PSCustomObject]@{ 
     'Server Name' = $Trimmed[1] 
     'IP Address' = $Trimmed[0] 
     'Scope Name' = $Trimmed[2] 
     'Comment'  = $Trimmed[3] 
    } 
} 

PowerShell將顯示多達對象4種性質默認(除非對象具有特定的格式的說明)表格的形式,但可以通過Format-Table迫使板狀輸出舉例來說如果你要編寫表格表示到一個文件,你需要Out-String除了Format-Table

... | Format-Table 

注意:如果需要cmdlet的

... | Format-Table | Out-String | Set-Content 'C:\output.txt' 
+0

爲了完整性,這輸出了四個相同的值,所以添加'|在結尾處選擇「First 1」可以提供確切的答案,但除此之外是一個很好的解決方案。 – ScriptMonkey