我在目录c:\scripts\
中有以下脚本。
# . c:\scripts\anotherScript.ps1
function GetScriptRoot { Split-Path $script:MyInvocation.MyCommand.Path }
. "$(GetScriptroot)\anotherScript.ps1"
然而,它在ISE中引发了错误。它是一种适用于控制台和ISE的方式吗?我试图不使用完整的绝对路径。
答案 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