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

通过快捷方式启动带点源脚本的.ps1文件时函数未识别

解决PowerShell快捷方式启动脚本时函数未找到的问题

问题根因

以管理员权限运行快捷方式时,UAC(用户账户控制)会改变进程的实际工作目录,导致脚本中用相对路径加载的依赖脚本(.\ps\file1.ps1等)无法被正确读取,进而函数未被定义,触发「未识别为 cmdlet/函数」的错误。

解决方法

方法1:用内置变量指定绝对路径

修改myfile.ps1中的依赖脚本引用,使用PowerShell内置变量$PSScriptRoot(代表当前脚本所在的目录)替代相对路径,确保无论工作目录如何变化都能找到依赖文件:

. $PSScriptRoot\ps\file1.ps1
. $PSScriptRoot\ps\file2.ps1

Clear-Host 
function1
function2

方法2:修改快捷方式的启动命令

将快捷方式的Target改为先切换目标目录,再执行脚本(用-Command参数替代-File):

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit -ExecutionPolicy Bypass -Command "cd 'C:\Temp'; .\myfile.ps1"

方法3:排查实际工作目录

在myfile.ps1开头添加Get-Location命令,运行后查看输出的实际工作目录,确认是否为C:\Temp:

Get-Location
. .\ps\file1.ps1
. .\ps\file2.ps1

Clear-Host 
function1
function2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 12:33:11