You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell新版本调用外部脚本时路径识别报错如何修复?

问题根因
  • 新服务器未配置AuxDrive系统环境变量:旧服务器上该环境变量值为E:,脚本执行时$env:AuxDrive可以正常解析出盘符,拼接为完整路径E:\myFolder\Get-CValue.ps1;新服务器该变量为空,拼接后路径变为\myFolder\Get-CValue.ps1,系统无法识别,对应首次执行的报错信息。
  • 手动修改路径时语法错误:$env:E:\myFolder\Get-CValue.ps1的写法错误,$env:是PowerShell取环境变量的固定前缀,E不是合法的环境变量名,因此无法解析出正确路径。
  • 注释点源代码后函数报错是正常现象:Get-CValue函数定义在Get-CValue.ps1中,没有加载该脚本自然无法识别函数。
修复方案

方案1:直接使用绝对路径(临时快速修复)

直接去掉错误的$env:前缀,写完整的实际路径即可,修改点源加载代码为:

. "E:\myFolder\Get-CValue.ps1"

方案2:给新服务器配置AuxDrive环境变量(兼容旧代码逻辑)

如果需要保持原有代码不变,在新服务器添加系统环境变量即可:

  1. 按下Win+R输入sysdm.cpl打开系统属性,切换到「高级」选项卡,点击「环境变量」
  2. 在「系统变量」区域点击「新建」,变量名填AuxDrive,变量值填E:
  3. 保存后重启PowerShell终端,重新执行脚本即可正常识别路径

方案3:使用相对主脚本的路径(通用推荐,不依赖环境变量和盘符配置)

因为两个脚本都存放在同一个myFolder目录下,可以用PowerShell自动获取的主脚本所在目录变量$PSScriptRoot拼接路径,兼容性更强:

. "$PSScriptRoot\Get-CValue.ps1"

这种写法不管脚本放在哪个盘符、哪个目录,只要两个脚本的相对位置不变,就可以正常加载。

内容的提问来源于stack exchange,提问作者faujong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 09:36:00