确定Powershell脚本是否在主范围内启动?

时间:2014-03-10 20:01:45

标签: python powershell

我是初学者Powershell用户。我正在写一些脚本文件(.ps1)

我想确定如何调用我的脚本:

是“主要”脚本还是源自另一个文件?

在python中,我会使用类似的东西:

if __name__ == "__main__":

PowerShell中有类似内容吗?

更新

阅读完答案后,我在.ps1文件末尾使用以下内容:

if ($MyInvocation.InvocationName -ne '.')
{
  # do "main" stuff here
}

欢迎包含如何失败的任何答案。

看来这是一个重复的问题,我只是没有使用正确的搜索字词: Determine if PowerShell script has been dot-sourced

1 个答案:

答案 0 :(得分:5)

如果您想知道如何调用它,请查看$ myinvocation自动变量。

如果你只想测试你是否在全球范围内:

Try {if (get-variable args -scope 1){$true}}
Catch {$false}
如果您在子范围内运行,

应返回$ true。如果您已经在全局范围内,则没有父作用域,它将抛出错误并返回$ false。