c# - 如何修改控制台文本的前一行?

标签 c# powershell console

我想实现这样的目标:

Time consuming operation...OK
Another time consuming operation...
And another one, but it completed, so...OK

我显示了 3 行文本,每行都与一个线程相关,该线程迟早会结束。但是如果第二个比第三个晚完成,我会得到这样的结果:

Time consuming operation...OK
Another time consuming operation...
And another one, but it completed, so...OKOK

这当然是 Not Acceptable 。我知道如何回到当前行,但有没有办法向上?我发誓我在某个地方见过它,尽管它可能是一个 Linux 控制台 :)

算了。请参阅远程文件管理器!它适用于 Windows 控制台,甚至适用于 PowerShell!如何制作这样的东西?最酷的部分是它在退出后恢复控制台状态。所以也许我应该问 - 如何直接访问控制台缓冲区?我想我需要一些 native 代码来完成这个技巧,但也许还有另一种方法?我想在每次更新时清除控制台,但这似乎有点矫枉过正。或者也许不是?它会眨眼吗?

最佳答案

你可以随意移动光标:Console.SetCursorPosition或使用 Console.CursorTop .

Console.SetCursorPosition(0, Console.CursorTop -1);
Console.WriteLine("Over previous line!!!");

关于c# - 如何修改控制台文本的前一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10804233/

相关文章:

c# - 原子操作线程安全——我需要 "Mirror"原子读取吗?

用于转换一列 CSV 文件的 PowerShell 脚本

powershell - 计算 DFS 文件夹暂存大小的前 32 个文件大小的更好方法

python - 是否可以用Python简洁地表达这个基于控制台绘制的美国国旗?

ruby-on-rails - Rails 控制台 : Run a Ruby file several times

localization - 在 Akeneo 2.1 中,如何获取事件区域设置的列表?

c# - 无法打开输入文件 : filename. php

c# - 使用 Moq 对方法进行单元测试

c# - 泛型方法中的隐式类型转换

powershell - Jenkins 管道,PowerShell 脚本挂起