我是初学者Powershell用户。我正在写一些脚本文件(.ps1)
我想确定如何调用我的脚本:
是“主要”脚本还是源自另一个文件?
在python中,我会使用类似的东西:
if __name__ == "__main__":
PowerShell中有类似内容吗?
更新
阅读完答案后,我在.ps1文件末尾使用以下内容:
if ($MyInvocation.InvocationName -ne '.')
{
# do "main" stuff here
}
欢迎包含如何失败的任何答案。
看来这是一个重复的问题,我只是没有使用正确的搜索字词: Determine if PowerShell script has been dot-sourced
答案 0 :(得分:5)
如果您想知道如何调用它,请查看$ myinvocation自动变量。
如果你只想测试你是否在全球范围内:
Try {if (get-variable args -scope 1){$true}}
Catch {$false}
如果您在子范围内运行,应返回$ true。如果您已经在全局范围内,则没有父作用域,它将抛出错误并返回$ false。