输出中的字符串连接在一行,虽然原始字符串没有连接 - 为什么?

时间:2017-11-30 13:19:04

标签: powershell string-concatenation

我的问题与PowerShell 4.0(Win7)有关。

目标是从文本文件中获取一个选定的多行字符串以及另一个准备好的文本。

我正在使用以下代码:

$nl = [System.Environment]::NewLine
[string]$text1 = 'Hello World' + $nl
$b = (Get-Content textfile.txt | Out-GridView -OutputMode Multiple)

textfile.txt的内容:

tester 1  
tester 2  
tester 3  

我从GridView中选择测试仪1和测试仪2,然后单击“确定” $ b的输出在2个单独的行中给出了以下(预期)结果:

        $b  
tester 1  
tester 2  

到目前为止,这么好

现在我把字符串放在一起:

$test = $text1 + $b  

$ test的输出给出了以下(意外)结果:

        $test  
Hello World  
tester 1 tester 2  

问题: 为什么$ test的输出不是2个单独的行,而是$ b ??

的输出

我希望它是:

Hello World  
tester 1  
tester 2

1 个答案:

答案 0 :(得分:1)

问题解决了。我在以下帖子中找到了解决方案:

https://stackoverflow.com/a/4433240/9033281

我必须像这样设置“输出字段分隔符”:

$OFS = "`r`n"

谢谢Keith Hill: - )