PowerShell:-NoNewLine 将新行与最后一行重叠

问题描述 投票:0回答:1

这是我第一次尝试编写 PowerShell 脚本

我做了这个例子来解释我的问题:

Write-Host -NoNewLine "`rthis-is-my-first-line"
Start-Sleep -Milliseconds 1000

Write-Host -NoNewLine "`rSECONDLN"
Start-Sleep -Milliseconds 500

Write-Host

输出:

SECONDLNmy-first-line
但我希望它只是
SECONDLN

问题:之前打印的行比新打印的行长

问题: 有没有办法“删除/替换”以前打印的行?或者我怎样才能实现这个目标?

powershell write-host
1个回答
0
投票
  • `r
    转义序列扩展为CR(回车)字符,其作用是将终端(控制台)的光标返回到当前行的开头。

  • 值得注意的是,它不会删除该行的当前内容。

因此,为了有效擦除当前行,需要将替换内容用空格填充到行尾,这可以通过.PadRight()

 .NET 方法实现:

Write-Host -NoNewLine "`rSECONDLN".PadRight([Console]::WindowWidth)
    
© www.soinside.com 2019 - 2024. All rights reserved.