【问题标题】:Join or Concatenate Two Powershell Variables连接或连接两个 Powershell 变量
【发布时间】:2015-12-23 19:28:16
【问题描述】:

试图将两个变量与其中的一个数组连接起来。

第一个变量包含:

 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

【问题讨论】:

  • -join 应该用于将数组的元素连接成这样的字符串:$MyArray -join ","

标签: powershell variables


【解决方案1】:

你可以这样做的一种方法是这样的:

$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"
}

【讨论】:

  • 太棒了。正是我想要的。为了更好地理解为什么要在末尾附加 $svcCall.displayname。
  • -Name displayname -Value $svcCall.displayname 向我表明您正在将 svcCall 的结尾条目附加到 svcStatus.displayname。 -Name 不应该反映 svcCall 中的一个表的名称应该是什么。
猜你喜欢
  • 1970-01-01
  • 2011-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多