我在c:\scripts\目录中有以下脚本。

# . c:\scripts\anotherScript.ps1
function GetScriptRoot { Split-Path $script:MyInvocation.MyCommand.Path }
. "$(GetScriptroot)\anotherScript.ps1"

但是,这会在ISE中引发错误。在控制台和ISE中都可以使用吗?我正在尝试不使用完整的绝对路径。

最佳答案

$ MyInvocation.MyCommand.Path属性仅在运行的脚本中可用。

要检测您是否正在ISE中运行,可以检查$psise变量:

if ($psise) {
    "Running in the ISE"
} else {
    "Not running in the ISE"
}

或查看$host.Name属性:
PS C:\Users\andy> $host
Name             : Windows PowerShell ISE Host

PS C:\Users\andy> $host
Name             : ConsoleHost

关于powershell - 在Powershell控制台和ISE中从脚本目录中点源文件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8858027/

10-09 17:54