Powershell添加内容行分隔符

Powershell添加内容行分隔符,powershell,line-breaks,Powershell,Line Breaks,我试图找出如何消除使用“添加内容”时的换行 echo $server "Uptime: " $uptime.days ", Days" $uptime.hours ", Hours" $uptime.minutes ", Minutes" | add-content $output_file 基本上,我一直在尝试让服务器的正常运行时间转到文本文件,当我这样做时,输出就会出来 HOSTNAME Uptime: , 2 Days 2 , Hours 15 , Minutes 我看了这个问题:

我试图找出如何消除使用“添加内容”时的换行

echo $server "Uptime: " $uptime.days ", Days" $uptime.hours ", Hours" $uptime.minutes ", Minutes" | add-content $output_file
基本上,我一直在尝试让服务器的正常运行时间转到文本文件,当我这样做时,输出就会出来

HOSTNAME
Uptime:
, 2 Days
2 
, Hours
15
, Minutes
我看了这个问题:


此外,我还使用了out file-append来添加内容,但两者都会产生类似的结果,有人能告诉我如何消除中断吗?

我想你想用一行信息,然后:

"$server Uptime: $($uptime.days) Days, $($uptime.hours) Hours, $($uptime.minutes) Minutes" | add-content $output_file
如果每个项目都在单独的行中,您可以添加'n

另一种可能是使用
-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
)的别名,在您的情况下,它生成对象数组。此数组被传递到
添加内容
;每个对象都存储在自己的行中。

避免PowerShell在换行符中出现任何问题的最简单方法是避免使用提供程序

通过使用[IO.File]::WriteAllText来写入文件,您应该能够避免PowerShell中的换行符。唯一需要注意的是[IO.File]::WriteAllText不理解PowerShell路径,因此需要向其传递绝对路径

希望这有帮助,

怎么样

[IO.File]::AppendAllText($testfile,"abc",[System.Text.Encoding]::UTF8)

谢谢,这很有效!这也让我更好地理解了我做错了什么。添加了导致断线的信息:)
[IO.File]::AppendAllText($testfile,"abc",[System.Text.Encoding]::UTF8)