如何在powershell中使用string.format和字符串数组

时间:2012-05-16 10:39:11

标签: arrays powershell string-formatting

我想将一个格式化的字符串输出到控制台。我有一个字符串变量和一个字符串数组变量。

当我这样做时:

$arr = "aaa","bbb"
"test {0} + {1}" -f "first",$arr

输出是这样的:

test first + System.Object[]

但我需要输出:

test first + aaa,bbb

或类似的东西......

1 个答案:

答案 0 :(得分:13)

有几个选择:

  1. 首先加入数组,这样就不依赖于默认的ToString()实现(只打印类名):

    PS> 'test {0} + {1}' -f 'first',($arr -join ',')
    test first + aaa,bbb
    
  2. 使用字符串插值:

    PS> $first = 'first'
    PS> "test $first + $arr"
    test first + aaa bbb
    

    您可以通过设置$OFS更改使用的分隔符,默认情况下为PS> $OFS = ',' PS> "test $first + $arr" test first + aaa,bbb

    $OFS
  3. 您可以使用

    获得相同的结果(包括有关PS> 'test {0} + {1}' -f 'first',(''+$arr) test first + aaa bbb 的说明)
    {{1}}

    这也会强制数组首先转换为单个字符串。