Function 如何编写函数以在Powershell中创建函数

Function 如何编写函数以在Powershell中创建函数,function,powershell,Function,Powershell,在Powershell中是否可以基于一组输入变量生成函数?我尝试将条件包装在脚本块和括号中以强制求值,但充其量我得到的结果是: The term 'function' is not recognized as the name of a cmdlet, function, [...] 否则,该函数看起来会运行,但不会创建新的函数绑定 这不起作用(在&{},&({}),&{()}中包装正文也不起作用) 我希望根据传递的值而不是预定义的值生成名称 上下文 我必须支持多个域,并且正在寻找一种方法来

在Powershell中是否可以基于一组输入变量生成函数?我尝试将条件包装在脚本块和括号中以强制求值,但充其量我得到的结果是:

The term 'function' is not recognized as the name of a cmdlet, function, [...]
否则,该函数看起来会运行,但不会创建新的函数绑定

这不起作用(在
&{}
&({})
&{()}
中包装正文也不起作用)

我希望根据传递的值而不是预定义的值生成名称

上下文 我必须支持多个域,并且正在寻找一种方法来简化函数的编码,以从它们返回特定的信息。目前,我有一组类型为“获取信息”(每个域一个)的函数,其中信息取决于我是否需要帐户设置、组成员资格等


如果没有办法做到这一点,我将不得不返回到
get Info-server
,使用默认域进行查询。但是,我打算与同事们分享这些信息,我希望使其尽可能简单/直接。

您可以使用新项和PSDrive函数创建函数:

例如:

Function New-Func{
    Param(
        $Prefix
    )
    $Code = @"
        # Your code here
        Write-Output "This is $Prefix"
"@
    $Name = "Global:Get-${Prefix}Info"
    New-Item -Path Function:\ -Name $Name -Value ([ScriptBlock]::Create($Code))
}
Function New-Func{
    Param(
        $Prefix
    )
    $Code = @"
        # Your code here
        Write-Output "This is $Prefix"
"@
    $Name = "Global:Get-${Prefix}Info"
    New-Item -Path Function:\ -Name $Name -Value ([ScriptBlock]::Create($Code))
}