【问题标题】:Powershell progress bar vertical spacePowershell进度条垂直空格
【发布时间】:2017-01-16 04:13:35
【问题描述】:

我在一个 powershell 脚本中添加了 4 个写入进度条,每个进度条都由正在运行的不同作业使用。它工作得很好,除了当我得到 3 个或更多时,它们会耗尽垂直空间并开始忽略实际的进度条。不仅如此,当它们被写入(单独和异步)时,它们会随着一些人添加进度条而移动,而另一些人则将其移除以变得更小。他们还改变了字段的排列以占用或多或少的行。他们跳来跳去,以至于很难阅读数字。

我可以通过调整窗口高度来解决这个问题,这样所有的进度条都以相同的格式显示。当有足够的空间让 1 个或多个成为更大的格式时,就会发生跳跃。似乎问题在于,当显示多种格式时,它并不总是将格式一致地分配到相同的栏。我可以做些什么来更改分配的垂直空间或将它们锁定为单一的显示格式以便它们可读吗?

以下是一分钟内的两张截图:

更新

我能够在系统 powershell 控制台上重现它,所以我认为它与 ConEmu 无关。

【问题讨论】:

  • 我认为该问题与 ConEmu 无关,无法使用 RAW conhost 重现。您的屏幕截图被裁剪,这就是不可靠的原因。
  • 感谢@Maximus 的回复。我再次尝试并能够使用系统 powershell 控制台重现它,所以我认为你是对的。无论如何,我已经更新了我的屏幕截图以包含整个窗口。
  • 现在我正在阅读文档,我也可以在“RealConsole”上看到它,而不是 ConEmu。

标签: powershell progress-bar


【解决方案1】:

我其实不知道如何更改默认进度条,但是在此link 下有一个名为PoshProgressBar 的模块。

例如:New-ProgressBar -MaterialDesign -IsIndeterminate $False -Type Vertical -Size Medium -Theme Dark

进度条显示在一个单独的窗口中。

希望对您有所帮助。

【讨论】:

    【解决方案2】:

    我认为您只需要调整缓冲区大小和窗口大小,以便为整个进度条控件留出空间

    例如:

    $pswindow = $pshost.ui.rawui
    
    $newsize = $pswindow.buffersize
    $newsize.height = 8000
    $newsize.width = 120
    $pswindow.buffersize = $newsize
    
    $newsize = $pswindow.windowsize
    #$newsize.height = 40
    #$newsize.width = 120
    

    【讨论】:

    • 似乎对我不起作用。我意识到只有在使用 ConEmu 时才会发生这种情况,所以我相应地更新了问题。
    • 没有ConEmu也能复制
    • 谢谢,我对此进行了更深入的研究,它是基于高度的,但我似乎只能将其设置为最大 50。此外,能够更改格式设置比将窗口高度设置为大于我的屏幕要好。 :)
    • 如果你改变宽度,你需要改变buffersize宽度。
    猜你喜欢
    • 2015-07-21
    • 2010-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多