这是一个例子:

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”以获得更多信息。

08-07 21:25