在 PowerShell ISE 控制台上以编程方式向上滚动

问题描述

任何帮助将不胜感激。我有一个脚本可以运行并显示一个列表,并在我的 PowerShell ISE 控制台中以一个问题和提示结尾。我希望它不会自动滚动到带有提示的问题,或者我希望自动滚动到控制台窗口的顶部。我已经尝试过 [System.Console]::SetwindowPosition 和 $psise.CurrentPowerShellTab.ConsolePane 的衍生物,但完全没有效果。在我看来,它无法完成,或者只是我在基本层面上误解了某些东西并且根本无法弄清楚。有没有人对如何做到这一点提出建议?

解决方法

我建议分块输出我们的结果,直到结果完整,然后显示问题。在我的示例中:

  • 我创建了一个包含 35 个用户名字字段的列表。

  • 一次显示 10 个结果,读取主机为“按任意键继续”

  • 显示所有 35 个结果后,它会向用户提问。

      $list = Import-Csv ".\data.csv"
    
      $startrow = 0
    
      $counter = 1
    
      $rows = $list | Measure-Object
    
      while ($startrow -lt $rows.Count)
    
      {
    
      $xs = $list | select-object -skip $startrow -first 10
    
      foreach ($x in $xs)
    
          {
              Write-Host $x.FirstName -ForegroundColor Green
    
          }
    
      Read-Host "hit any key to continue"
      $startrow += 10
      $counter++
      }
    
      Read-Host "did you finish reading the output?"
    

希望能帮到你。随意修改它以符合您的规格。