Разрывы строк надстроек Powershell - PullRequest
8 голосов
/ 30 марта 2011

Я пытаюсь выяснить, как устранить разрывы строк при использовании add-content

echo $server "Uptime: " $uptime.days ", Days" $uptime.hours ", Hours" $uptime.minutes ", Minutes" | add-content $output_file

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

HOSTNAME
Uptime:
, 2 Days
2 
, Hours
15
, Minutes

Я посмотрел на этот вопрос: PowerShell заменяет потерять разрывы строк

Также я перешел от использования out-file -append к add-content, однако оба результата дают схожие результаты, может кто-нибудь пролить свет на то, как я могу устранить разрывы?

Ответы [ 3 ]

12 голосов
/ 30 марта 2011

Полагаю, вы хотите иметь одну строку с информацией, затем:

"$server Uptime: $($uptime.days) Days, $($uptime.hours) Hours, $($uptime.minutes) Minutes" | add-content $output_file

Если каждый элемент должен быть в отдельной строке, вы можете добавить `n

"$server Uptime`n$($uptime.days) Days`n$($uptime.hours) Hours`n$($uptime.minutes) Minutes" | add-content $output_file

Другой возможностью является использование -f, которое иногда более читабельно:

"$server Uptime: {0} Days, {1} Hours, {2} Minutes" -f $uptime.days, $uptime.hours, $uptime.minutes | add-content $output_file

Обновление echo - это псевдоним для Write-Output (Get-Alias -name echo), который в вашем случае создает массив объектов. Этот массив передается в Add-Content; каждый объект хранится в отдельной строке.

1 голос
/ 12 февраля 2013

как насчет

[IO.File]::AppendAllText($testfile,"abc",[System.Text.Encoding]::UTF8)
1 голос
/ 30 марта 2011

Самый простой способ обойти любую проблему, которую PowerShell может поместить в разрывы строк, - это избежать использования провайдеров.

Используя [IO.File] :: WriteAllText для записи файла, вы должныв состоянии избежать разрывов строк, которые приходят от PowerShell.Единственное предостережение в том, что [IO.File] :: WriteAllText не понимает пути PowerShell, поэтому вам нужно будет передать ему абсолютный путь.

Надеюсь, это поможет,

...