【问题标题】:Powershell add-content line breaksPowershell 添加内容换行符
【发布时间】:2011-03-30 06:07:53
【问题描述】:

我想弄清楚如何在使用 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 replace lose line breaks

我也从使用 out-file -append 到 add-content,但是两者都产生相似的结果,有人可以说明我如何消除中断吗?

【问题讨论】:

    标签: powershell line-breaks


    【解决方案1】:

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

    "$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
    

    更新 echoWrite-Output (Get-Alias -name echo) 的别名,在您的情况下会生成对象数组。这个数组被传递给Add-Content;每个对象都存储在自己的行中。

    【讨论】:

    • 谢谢,效果很好!它也让我更好地了解我做错了什么。
    • 添加了有关导致换行符的信息:)
    【解决方案2】:

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

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

    希望这会有所帮助,

    【讨论】:

      【解决方案3】:

      怎么样

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-04-14
        • 2021-09-26
        • 2019-03-22
        • 1970-01-01
        • 1970-01-01
        • 2012-10-16
        • 2015-09-09
        • 2013-06-07
        相关资源
        最近更新 更多