这是一个例子:
function ChildF()
{
#Creating new function dynamically
$DynFEx =
@"
function DynF()
{
"Hello DynF"
}
"@
Invoke-Expression $DynFEx
#Calling in ChildF scope Works
DynF
}
ChildF
#Calling in parent scope doesn't. It doesn't exist here
DynF
我想知道您是否可以以在ChildF外部“可见”的方式定义DynF。
最佳答案
其他解决方案是对特定问题的更好答案。也就是说,最好学习创建全局变量的最通用方法:
# inner scope
Set-Variable -name DynFEx -value 'function DynF() {"Hello DynF"}' -scope global
# somewhere other scope
Invoke-Expression $dynfex
DynF
阅读“help about_Scopes”以获得更多信息。