2015-12-23 66 views
1

嘗試將兩個變量與其中的數組連接起來。
加入或連接兩個Powershell變量

首先變量包含:

PS C:\WINDOWS\system32> $svcStatus 

    Response Status 
    -------- ------ 
     200 OK 

二變量包含:

PS C:\WINDOWS\system32> $svcCall 

displayName  serviceTypeUrl                    port servicePort 
-----------  --------------                    ---- ----------- 
AutnTestService http://demo1.ravn.co.uk/ravn-manage/api/v2/service_types/0310bf36-8fbd-4543-a79e-2b59f288d7e3 9000  9002 


當它們被加入:

PS C:\WINDOWS\system32>$mansvcApp = -join $svcStatus, $svcCall 
$mansvcApp 
@{Response=200; Status=OK} 

displayName  serviceTypeUrl                    port servicePort 
-----------  --------------                    ---- ----------- 
AutnTestService http://demo1.ravn.co.uk/ravn-manage/api/v2/service_types/0310bf36-8fbd-4543-a79e-2b59f288d7e3 9000  9002 

我怎樣才能得到它看起來像這樣:你能做到這一點

displayName  serviceTypeUrl           port servicePort Response status 
-----------  --------------           ---- ----------- -------- ------ 
AutnTestService http://demo1.blah.co.uk/blah/api/v2/service_types/0310b 9000 9002  200  OK 
+0

'-join'應該用於將數組的元素連接成如下所示的字符串:'$ MyArray -join「,」' –

回答

2

一種方法是這樣的:

$svcStatus | Add-Member -MemberType NoteProperty -Name displayname -Value $svcCall.displayname 
$svcStatus | Add-Member -MemberType NoteProperty -Name serviceTypeUrl -Value $svcCall.serviceTypeUrl 

如果你有幾個列添加,你不想大量輸入,那麼你可以使用循環來做到這一點:

$svcCall | Get-Member -MemberType NoteProperty | % { 
    $n = $_.name 
    $svcStatus | Add-Member -MemberType NoteProperty -Name $n -Value $svcCall."$n" 
} 
+0

輝煌。正是我在找的東西。爲了更好地理解爲什麼最後追加了$ svcCall.displayname。 – ifeanyi

+0

-Name displayname -Value $ svcCall.displayname向我表明您正在將svcCall的結尾條目附加到svcStatus.displayname。不應該-Name反映svcCall中的其中一個表的名稱應該是什麼。 – ifeanyi