如何设置持久的默认 PowerShell 屏幕缓冲区高度?

如何设置持久的默认 PowerShell 屏幕缓冲区高度?

我想更改 Windows 10 中 PowerShell 屏幕缓冲区的默认高度。(我还没有尝试在其他 Windows 版本上执行此操作。)这似乎应该非常简单。

如果我右键单击 PowerShell 标题栏,上下文菜单中会出现一个“默认”选项,这会打开一个窗口,其中有一个标签,上面写着“布局”。该选项卡下是“宽度”和“高度”的屏幕缓冲区大小选项。到目前为止一切顺利。但是有一个问题:PowerShell 只遵守默认高度设置,直到我重新启动计算机。然后,新 PowerShell 窗口的实际缓冲区高度将设置为屏幕高度,即使默认值似乎保持不变。我如何设置持久的默认值?也许我应该编辑某种配置文件,而不是使用默认的 GUI?

(关于相关说明,作为一个单独的问题没有多大意义,我观察到的行为是故意的还是我应该向微软提交错误报告?这看起来很奇怪,但我不想立即假设它是一个错误,因为很多我不理解的流行软件产品的行为显然是故意的。)

答案1

将 Doug 展示的内容放入AllUsers PowerShell 配置文件从 PowerShell 7.1 开始,这意味着将给定的 <width> 和 <height> 值添加$host.UI.RawUI.BufferSize = New-Object System.Management.Automation.Host.Size(<width>,<height>)$PsHome/Profile.ps1计算机上所有新的 PowerShell 控制台窗口。这适用于所有用户和主机。

如何选择配置文件 如果您使用多个主机应用程序,请将您在所有主机应用程序中使用的项目放入 $PROFILE.CurrentUserAllHosts 配置文件中。将特定于主机应用程序的项目(例如设置主机应用程序背景颜色的命令)放入特定于该主机应用程序的配置文件中。

如果您是要为许多用户自定义 PowerShell 的管理员,请遵循以下准则:

将公共项目存储在 $PROFILE.AllUsersAllHosts 配置文件中 将特定于主机应用程序的项目存储在特定于主机应用程序的 $PROFILE.AllUsersCurrentHost 配置文件中 将特定用户的项目存储在特定于用户的配置文件中 请务必检查主机应用程序文档以了解 PowerShell 配置文件的任何特殊实现。

Windows PowerShell 配置文件处理说明PowerShell 执行流程图,包括配置文件加载。

PowerShell 配置文件的路径和优先级,以 $PsHome\Profile.ps1 处的“AllUsersAllHosts”开头

步骤 5:为任何登录用户加载主机无关配置文件 AllUsersAllHosts 配置文件脚本也会为任何登录的用户加载

Table:
<#
User    Host    Sequence    Shared between hosts    Path
____    ____    ________    ____________________    ____
All     All     1           Yes                     $PsHome\Profile.ps1
All     Current 2           No                      $PsHome\Microsoft.<hostid>_profile.ps1
Current All     3           Yes                     $Home\[My] Documents\WindowsPowerShell\Profile.ps1
Current Current 4           No                      $Home\[My] Documents\WindowsPowerShell\<hostid>_profile.ps1
#>

相关内容