Python 确定Powershell脚本是否已在主作用域中启动?
我是Powershell的初学者。我正在编写一些脚本文件(.ps1) 我想确定如何调用我的脚本: “主”脚本还是源于另一个文件 在python中,我将使用如下内容:Python 确定Powershell脚本是否已在主作用域中启动?,python,powershell,Python,Powershell,我是Powershell的初学者。我正在编写一些脚本文件(.ps1) 我想确定如何调用我的脚本: “主”脚本还是源于另一个文件 在python中,我将使用如下内容: if __name__ == "__main__": PowerShell中有类似的东西吗 更新 阅读答案后,我在.ps1文件末尾使用以下内容: if ($MyInvocation.InvocationName -ne '.') { # do "main" stuff here } 任何包括如何失败的答案都是受欢迎的 这似乎
if __name__ == "__main__":
PowerShell中有类似的东西吗
更新
阅读答案后,我在.ps1文件末尾使用以下内容:
if ($MyInvocation.InvocationName -ne '.')
{
# do "main" stuff here
}
任何包括如何失败的答案都是受欢迎的
这似乎是一个重复的问题,我只是没有使用正确的搜索词:
如果您想知道它是如何被调用的,请查看$myinvocation自动变量 如果您只想测试您是否在全局范围内:
Try {if (get-variable args -scope 1){$true}}
Catch {$false}
如果在子作用域中运行,则应返回$true。如果您已经在全局作用域中,则没有父作用域,它将抛出错误并返回$false。@HyperAnthony感谢您的链接。PowerShell是否有与python版本等效的一行程序?我知道PowerShell脚本是自上而下运行的。因此,我想在脚本底部添加一个测试条件,只有通过测试,脚本的其余部分才会运行。谢谢,这似乎是一个很好的信息。你知道$myinvocation.CommandOrigin是否能满足我的需求吗?如果我从powershell启动脚本,我的初步测试似乎显示为“运行空间”,如果另一个脚本正在调用它,则显示为“内部”?我没有找到有关CommandOrigin成员的任何详细信息。我还看到调用名称,它似乎是“.”或脚本名称?也许这是一个更好的方法?我不懂Python,所以我不太确定要告诉您查找什么,这将是Python命令的模拟。谢谢!每个作用域都使用它自己的$args进行初始化,因此它应该始终存在:)。