PowerShell Profile 报错修复记录

PowerShell Profile 报错修复记录

错误现象

打开 PowerShell 终端时出现两条报错:

cd : 找不到路径"D:\file\work\鎴戠殑璁烘枃\澶т慨",因为该路径不存在。

& : 无法将"C:\Users\23670\miniconda3\shell\condabin\conda-hook.ps1"项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

错误原因

1. 路径乱码(鎴戠殑璁烘枃\澶т慨

PowerShell 5.1 读取脚本文件时默认使用系统 ANSI 编码(中文 Windows 上是 GBK/CP936)。当 profile 文件以 UTF-8 无 BOM 格式保存时,PowerShell 把 UTF-8 的中文字节当作 GBK 来解读,导致乱码,路径自然找不到。

PowerShell 7+ 默认能正确处理 UTF-8,不存在此问题。

2. conda-hook.ps1 找不到

Profile 里写的路径为:

$env:USERPROFILE\miniconda3\shell\condabin\conda-hook.ps1

但实际 conda 安装在 D:\Software\anaconda3,系统中根本不存在 miniconda3 目录,路径写错了(可能是从模板复制后未更新)。


修复步骤

Step 1:找到实际 conda 安装路径

conda info | Select-String "base environment"
# 输出: base environment : D:\Software\anaconda3

确认 hook 脚本存在:

Test-Path "D:\Software\anaconda3\shell\condabin\conda-hook.ps1"
# 输出: True

Step 2:修改 Profile 中的 conda hook 路径

将 profile 文件 C:\Users\23670\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 中的:

& "$env:USERPROFILE\miniconda3\shell\condabin\conda-hook.ps1"

改为:

& "D:\Software\anaconda3\shell\condabin\conda-hook.ps1"

Step 3:将 Profile 以 UTF-8 with BOM 重新保存

$content = Get-Content "C:\Users\23670\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1" -Encoding UTF8 -Raw
[System.IO.File]::WriteAllText(
    "C:\Users\23670\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1",
    $content,
    [System.Text.UTF8Encoding]::new($true)
)

UTF-8 BOM(EF BB BF)头告诉 PowerShell 5.1 这是 UTF-8 文件,中文路径可正常读取。


最终 Profile 内容

cd D:\file\work\我的论文\大修\参考论文
& "D:\Software\anaconda3\shell\condabin\conda-hook.ps1"
conda activate py310

验证

重新打开 PowerShell 终端,两条报错消失,自动进入目标目录并激活 py310 环境。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值