Сохранение новых строк в строке PowerShell - PullRequest
4 голосов
/ 13 декабря 2010

В сценарии PowerShell я записываю строковый вывод EXE-файла в переменную, затем объединяю его с другим текстом для создания тела письма.

Однако, когда я делаю это, я обнаруживаю, что переводы строки в выводе сокращаются до пробелов, что делает общий вывод нечитаемым.это?

Ответы [ 2 ]

12 голосов
/ 13 декабря 2010

Или вы можете просто установить $ OFS так:

PS> $msg = 'a','b','c'
PS> "hi $msg"
hi a b c
PS> $OFS = "`r`n"
PS> "hi $msg"
hi a
b
c

С man about_preference_variables:

Разделитель выходного поля. Определяет символ, который отделяет элементы массива при преобразовании массива в строку.

8 голосов
/ 13 декабря 2010

Возможно, это поможет:

$msg = "Output of other.exe: " + "`r`n" + ( (.\other.exe) -join "`r`n")

Вы получаете список строк, а не текст из other.exe

$a = ('abc', 'efg')
 "Output of other.exe: " + $a


 $a = ('abc', 'efg')
 "Output of other.exe: " +  "`r`n" + ($a -join "`r`n")
...