踩坑实录:把 Windows 默认 PowerShell 换成 7.x 到底有多坑?一条龙解决指南 📅 发布时间:2026/7/11 10:23:45 👁️ 浏览次数: 故事的开始一个中文乱码引发的血案事情是这样的——我在 Windows 终端里跑一段 Node.js 脚本用管道传了一段中文进去结果输出全是乱码。改编码、调参数、搜教程折腾半天最后定位到一个根本问题我一直在用 Windows 自带的 PowerShell 5.1。查了一圈资料结论很明确5.1 是 .NET Framework 时代的产物UTF-8 支持稀烂管道传中文给原生命令十次有八次出问题。而PowerShell 7pwsh.exe基于 .NET CoreUTF-8 原生支持、跨平台一致性更好是当前 Windows 下“最稳”的选择。OK换。我以为十几分钟就能搞定结果踩了一堆坑。这篇文章记录整个过程希望能帮后来人少走弯路。第一阶段安装 PowerShell 7 —— 丝滑开局首先检查有没有装过powershellpwsh -v提示找不到命令那就装。Windows 现在有 winget 包管理器一行搞定powershellwinget install --id Microsoft.PowerShell --source winget下载 328MB安装一气呵成没有任何报错。到这里我还觉得今天运气不错。然而坑才刚刚开始。第二阶段切换默认终端 —— 这才哪到哪装完之后我以为打开 Windows Terminal 就会自动变成新版本。结果一执行powershell$PSVersionTable.PSVersiontextMajor Minor Build Revision ----- ----- ----- -------- 5 1 22621 6133还是 5.1。我知道要改默认配置于是打开 Windows Terminal 的设置Ctrl ,在配置文件下拉菜单里找 PowerShell 7。下拉菜单长这样textWindows PowerShell 命令提示符 Azure Cloud Shell Developer Command Prompt for VS 2022 Developer PowerShell for VS 2022 Visual Studio Debug Console Anaconda PowerShell Prompt (anaconda3) Anaconda Prompt (anaconda3) Git Bash ……没有 PowerShell 7。第三阶段手动添加配置文件 —— 继续踩坑网上教程教我用 JSON 添加。我在设置页面左下角点了“打开 JSON 文件”结果——打开的是一片空白。不是玩笑真就是一片白。没有profiles没有list没有任何 JSON 结构。后来我才知道如果你从来没手动编辑过 Windows Terminal 的 JSON 设置它默认打开的可能是一个几乎没有内容的文件。行放弃 JSON走图形界面。切回设置页面左边菜单找到添加新配置文件→新建空配置文件出现一个表单。教程告诉我填字段内容名称PowerShell 7命令行C:\Program Files\PowerShell\7\pwsh.exe启动目录%USERPROFILE%填完保存信心满满地把默认配置改成这个。结果——启动报错找不到 pwsh.exe。第四阶段路径去哪了—— 今日最坑我在终端里执行where.exe pwsh找到了实际路径textC:\Users\a1\AppData\Local\Microsoft\WindowsApps\Microsoft.PowerShell_8wekyb3d8bbwe\pwsh.exe我当时的心情可以用一句话概括“尼玛这位置这么奇怪”winget 安装的 PowerShell 7路径竟然不在C:\Program Files\PowerShell\7\而是藏在了AppData\Local\Microsoft\WindowsApps\下一个带随机哈希的文件夹里。这就是为什么很多教程里写的标准路径不生效——因为 winget 安装的实际路径不一样。我把表单里的命令行改成了实际路径保存。再次启动 Windows Terminal。textPowerShell 7.6.1终于进去了。第五阶段配 UTF-8、改 VS Code、收尾1. 写入 UTF-8 Profile在 pwsh 里执行powershell$dir Split-Path $PROFILE -Parent if (!(Test-Path $dir)) { New-Item -ItemType Directory -Path $dir -Force } $utf8 [System.Text.UTF8Encoding]::new($false) [Console]::InputEncoding $utf8 [Console]::OutputEncoding $utf8 $OutputEncoding $utf8 $PSDefaultParameterValues[Out-File:Encoding] utf8 $PSDefaultParameterValues[Set-Content:Encoding] utf8 $PSDefaultParameterValues[Add-Content:Encoding] utf8 $env:PYTHONUTF8 1 $env:PYTHONIOENCODING utf-8 | Out-File -FilePath $PROFILE -Encoding utf8 . $PROFILE2. 改 VS Code 默认终端Ctrl Shift P→Terminal: Select Default Profile→ 选PowerShell 73. 验证powershell$PSVersionTable.PSVersion # Major 7 $OutputEncoding.WebName # utf-8 [Console]::InputEncoding.WebName # utf-8 [Console]::OutputEncoding.WebName # utf-8全部通过。踩坑总结避坑清单坑原因解决方法装完还是 5.1需要手动改默认终端Windows Terminal 设置里改默认配置文件下拉菜单没有 PowerShell 7winget 不会自动注册 profile手动添加新配置文件打开 JSON 文件是空白的没手动编辑过就不会自动生成完整结构直接走图形界面添加C:\Program Files\PowerShell\7\不存在winget 安装路径在 AppData 下用where.exe pwsh查真实路径最终方案照着做半小时搞定安装 PowerShell 7powershellwinget install --id Microsoft.PowerShell --source winget查找真实路径powershellwhere.exe pwshWindows Terminal 添加新配置文件字段内容把路径换成你查到的名称PowerShell 7命令行你的实际 pwsh.exe 路径启动目录%USERPROFILE%设为默认→ 启动 → 默认配置文件 → 选 PowerShell 7写入 UTF-8 Profile代码见上VS Code 终端也改代码见上验证四命令全部绿代码见上最后说两句这趟折腾下来最深的体会是Windows 下的开发环境配置坑永远在“路径”和“默认值”这两个环节。winget 是个好东西但它的安装路径跟传统教程对不上Windows Terminal 的 JSON 配置对新用户也不够友好。希望这篇文章能帮你绕过我今天踩的这些坑。如果你也正在被 PowerShell 的版本和编码问题折磨按上面的步骤走一遍半小时应该能搞定。卡住了欢迎留言我会尽量帮看。
番茄小说下载器实战教程:5步打造个人数字图书馆 番茄小说下载器实战教程:5步打造个人数字图书馆 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 番茄小说下载器是一款功能强大的开源工具,专门用于从番茄小说平台批… 2026/5/5 12:17:11
图像去噪实战:避开TV模型的坑,用ADMM调参获得最佳PSNR/SSIM指标 图像去噪实战:避开TV模型的坑,用ADMM调参获得最佳PSNR/SSIM指标 当你在深夜调试一个图像去噪模型,看着屏幕上模糊不清的结果和波动不定的指标,是否感到无从下手?ADMMTV(全变分)去噪算法在理论上… 2026/5/5 12:17:01
从ReSharper Ultimate到dotUltimate:一次订阅搞定所有.NET工具,我的生产力翻倍了 从ReSharper Ultimate到dotUltimate:解锁.NET开发者的终极生产力套件 当JetBrains在2023年宣布将ReSharper Ultimate升级为dotUltimate时,许多.NET开发者可能还没意识到这次品牌整合背后的深远意义。这不仅仅是产品名称的变更,而是一次彻底的… 2026/5/17 0:36:00
AI写专著高效秘籍:精选工具,一键生成20万字专著,质量有保障! 学术专著创作难题与AI工具破局 对于很多学者来说,撰写学术专著最大的挑战,主要在于“时间有限”与“需求无边”的矛盾。写一本专著通常需要花费三到五年,甚至更长的时间,但研究人员在日常生活中还要处理教学、科研项目以及学术交… 2026/7/11 10:22:21
大数据毕设项目:基于 SpringBoot 的乡村产权资源可视化监测系统的设计与实现 基于 SpringBoot 的吉林省农村资产交易管控系统 (源码+文档,讲解、调试运行,定制等) 博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am… 2026/7/11 10:20:21
作物营养管理中的多功能叶面肥配方逻辑:氨基酸与中微量元素协同解析 作物营养管理中的多功能叶面肥配方逻辑:氨基酸与中微量元素协同解析 摘要:作物黄叶、弱苗、恢复慢等田间问题,往往不能只从氮、磷、钾供应角度理解。植物生长需要大量元素、中量元素和微量元素共同参与,不同营养元素在植物体内承担… 2026/7/11 10:20:21
物联网设备电池寿命优化与NBM7100A硬件级功耗管理 1. 不可充电初级电池的寿命挑战与优化思路在物联网设备和便携式电子产品的设计中,不可充电的初级电池(如锂亚硫酰氯电池、碱性电池)因其高能量密度和免维护特性被广泛应用。但工程师们常面临一个核心矛盾:设备功能日益复杂带来的功… 2026/7/11 10:20:21
IL2CppDumper原理与应用:解密Unity游戏逆向工程 1. 项目概述:为什么我们需要IL2CppDumper? 如果你是一个Unity游戏开发者,或者对游戏安全、逆向分析感兴趣,那么你一定听说过“IL2CPP”这个名词。简单来说,它是Unity引擎从Mono运行时切换到的一种新的脚本后端… 2026/7/11 10:16:20
Unity动态骨骼插件Dynamic Bone原理、参数调优与性能优化实战 1. 项目概述:为什么我们需要Dynamic Bone? 在Unity里做角色动画,尤其是那些需要飘逸长发、灵动尾巴、柔软布料或者任何会随着角色运动而自然晃动的部件时,开发者经常会遇到一个头疼的问题:用传统的骨骼动画(… 2026/7/11 10:16:20
5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 [特殊字符] 5分钟搞定Kodi字幕难题:智能字幕插件让你追剧无忧 🎬 【免费下载链接】zimuku_for_kodi Kodi 插件,用于从「字幕库」网站下载字幕 项目地址: https://gitcode.com/gh_mirrors/zi/zimuku_for_kodi 还记得那个深夜吗?你刚下载… 2026/7/11 0:00:11
工业信号干扰处理与FOD4216光耦应用实战 1. 工业环境中的信号干扰挑战在工业自动化领域,信号采集的准确性直接关系到整个控制系统的可靠性。典型的工业现场充斥着各种干扰源:大功率电机启停产生的电磁干扰、变频器工作产生的高频噪声、继电器触点火花放电,以及长距离传输引入的共模干… 2026/7/11 0:00:11
OpenHarmony 完整项目工程整合规范 + 模块化分层架构(API23+ 标准企业级结构) 摘要前面系列教程覆盖了 ArkUI 组件、路由、生命周期、本地存储、网络请求、Ability 底层全套基础能力,本篇统一梳理标准工程目录分层、模块化拆分、代码复用规范、全局工具统一管理、项目打包权限配置、常见工程报错统一解决方案,形成可直接用于课程设计… 2026/7/11 0:00:11
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/8 20:15:17
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/8 14:25:08