如何让独立启动的PowerShell与Windows Terminal中的显示效果一致?
解决独立启动PowerShell 7与Windows Terminal中显示差异的问题
核心原因
独立启动的pwsh.exe默认调用传统Console Window Host(conhost.exe),而Windows Terminal使用的是现代终端宿主,两者对ANSI转义码的支持、渲染逻辑(尤其是DPI缩放)完全不同,这就是显示效果差异的根源。
解决方法
方法1:将Windows Terminal设为默认终端
这是最彻底的解决方式,让所有控制台程序(包括pwsh.exe)都通过Windows Terminal启动:
- 打开Windows Terminal,按
Ctrl+,进入设置 - 左侧选择启动,把默认终端应用设为Windows Terminal
- 之后直接启动
pwsh.exe,会自动在Windows Terminal中打开,显示效果和Terminal内启动的完全一致,ANSI转义码也能正常解析。
方法2:修改PowerShell 7快捷方式,强制用Windows Terminal启动
如果只想让PowerShell 7通过Terminal启动,不修改全局设置:
- 找到PowerShell 7的快捷方式(桌面或开始菜单),右键选属性
- 在目标栏,把原有内容替换为:
注:如果你的Windows Terminal里PowerShell 7的配置文件名称不是"PowerShell 7",改成对应名称即可wt.exe -p "PowerShell 7" - 保存后,双击快捷方式就会在Windows Terminal中打开PowerShell 7。
方法3:启用传统Console Host的现代特性(无需依赖Windows Terminal)
针对Windows 10 1903版本及以上、Windows 11,可以让传统conhost支持现代终端特性:
- 打开独立的PowerShell 7窗口,右键标题栏选属性
- 切换到选项标签,取消勾选使用旧版控制台(启用现代控制台模式)
- 切换到字体标签,选择
Cascadia Mono,字号设为12(此时DPI缩放逻辑和Windows Terminal对齐,字体大小一致) - 切换到终端标签,勾选启用终端着色和使用VT100系列终端仿真,确保ANSI转义码能正常渲染
- 点击确定保存设置,之后独立启动的PowerShell 7就能实现和Terminal中一致的显示效果。
补充说明
之前手动修改字体出现大小混乱,是因为传统conhost的DPI缩放规则和Windows Terminal不同,启用现代控制台模式后,两者的缩放逻辑统一,字体大小设置就能匹配了。
内容的提问来源于stack exchange,提问作者martin's
相关产品推荐
相关产品推荐

