我注意到,在执行返回脚本后,模块函数内的变量不会保留在范围内。我遇到Export-ModuleMember
,但似乎没有帮助,也许我错了。
FunctionLibrary.psm1
Function AuthorizeAPI
{
# does a bunch of things to find $access_token
$access_token = "aerh137heuar7fhes732"
}
Write-Host $access_token
aerh137heuar7fhes732
Export-ModuleMember -Variable access_token -Function AuthorizeAPI
主要脚本
Import-Module FunctionLibrary
AuthorizeAPI # call to module function to get access_token
Write-Host $access_token
# nothing returns
我知道作为替代方案,我可以点源一个单独的脚本,这将允许我获得access_token但我喜欢使用模块并在其中具有所有功能的想法。这可行吗?谢谢!
答案 0 :(得分:1)
根据@ PetSerAl的评论,您可以更改变量的范围。阅读范围here。从控制台运行时,script
范围对我不起作用; global
做到了。
$global:access_token = "aerh137heuar7fhes732"
或者,您可以将函数返回值并存储在变量中;无需更改范围。
<强>功能强>
Function AuthorizeAPI
{
# does a bunch of things to find $access_token
$access_token = "aerh137heuar7fhes732"
return $access_token
}
主脚本
Import-Module FunctionLibrary
$this_access_token = AuthorizeAPI # call to module function to get access_token
Write-Host $this_access_token