我想更改 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 配置文件的任何特殊实现。
步骤 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
#>