dot源自Powershell控制台和ISE中脚本目录中的文件?

时间:2012-01-13 22:20:06

标签: powershell powershell-ise

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

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

然而,它在ISE中引发了错误。它是一种适用于控制台和ISE的方式吗?我试图不使用完整的绝对路径。

1 个答案:

答案 0 :(得分:2)

$ 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