jum*_*mbo 6 arrays powershell string-formatting
我想将一个格式化的字符串输出到控制台.我有一个字符串变量和一个字符串数组变量.
当我这样做:
$arr = "aaa","bbb"
"test {0} + {1}" -f "first",$arr
Run Code Online (Sandbox Code Playgroud)
输出是这样的:
test first + System.Object[]
Run Code Online (Sandbox Code Playgroud)
但我需要输出为:
test first + aaa,bbb
Run Code Online (Sandbox Code Playgroud)
或类似的东西......
Joe*_*oey 13
几个选项:
首先加入数组,这样就不依赖于默认ToString()实现(只打印类名):
PS> 'test {0} + {1}' -f 'first',($arr -join ',')
test first + aaa,bbb
Run Code Online (Sandbox Code Playgroud)使用字符串插值:
PS> $first = 'first'
PS> "test $first + $arr"
test first + aaa bbb
Run Code Online (Sandbox Code Playgroud)
您可以更改设置使用的分隔符$OFS,默认情况下为空格:
PS> $OFS = ','
PS> "test $first + $arr"
test first + aaa,bbb
Run Code Online (Sandbox Code Playgroud)您可以获得相同的结果(包括有关的注释$OFS)
PS> 'test {0} + {1}' -f 'first',(''+$arr)
test first + aaa bbb
Run Code Online (Sandbox Code Playgroud)
这也会强制数组首先转换为单个字符串.