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 环境。

2726

被折叠的 条评论
为什么被折叠?



