【问题标题】:How to change cursor position in powershell console如何在PowerShell控制台中更改光标位置
【发布时间】:2018-01-17 13:46:15
【问题描述】:

我目前将当前 CursorPosition 分配给 Powershell 中的一个变量,以便在执行倒计时(例如在脚本中)时覆盖相同的空间,如下所示:

$errorPos = $host.UI.RawUI.CursorPosition
for ($i=5; $i -ge 0; $i--) {
    $host.UI.RawUI.CursorPosition = $errorPos
    Write-Host -NoNewline -BackgroundColor Yellow -ForegroundColor Black "$i"
    Start-Sleep -Seconds 1
}

我想做的是,它获取光标的当前位置并将其向前移动两个空格,然后将其分配给另一个变量。我可以使用:

write-host "  "

但我不想覆盖当前占用该空间的文本。

我认为它可以使用 X 和 Y 坐标来完成,但没有太大的成功。

【问题讨论】:

  • 对我来说,这听起来像是一个带有倒计时数字的进度条。

标签: powershell console


【解决方案1】:

如果您只想将“X”向前移动 2,您可以在创建 errorPos 变量后执行此操作:

$errorPos.X += 2

您可以直接使用$errorPos.X.Y修改变量。

【讨论】:

  • 很好,解决了,感谢 ConnorLSW。我想我在玩的时候可能遇到过这样的事情,但是 ISE 不喜欢操​​纵光标的位置,所以看起来!
  • 肯定会在正常提示下进行测试,ISE 不太可能表现良好 :) - 您可能也想看看 Write-Progress,这是“更好”的方法你想做。
猜你喜欢
  • 1970-01-01
  • 2013-06-13
  • 2015-12-15
  • 1970-01-01
  • 2010-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多