指定要导出的模块成员。

语法

Export-ModuleMember [[-Function] <string[]>] [-Alias <string[]>] [-Cmdlet <string[]>] [-Variable <string[]>] [<CommonParameters>]

说明

Export-ModuleMember cmdlet 指定从脚本模块 (.psm1) 文件或从使用 New-Module cmdlet 创建的动态模块中导出的模块成员(如 cmdlet、函数、变量和别名)。此 cmdlet 只可用于脚本模块文件或动态模块。

如果脚本模块中不包含 Export-ModuleMember 命令,则只导出脚本模块中的函数,而不导出变量和别名。如果脚本模块中包含一个 Export-ModuleMember 命令,则只导出在该 Export-ModuleMember 命令中指定的成员。

如果脚本模块包含多个 Export-ModuleMember 命令,则只导出在一个 Export-ModuleMember 命令中列出的成员。

还可以使用 Export-ModuleMember 导出脚本模块从其他模块导入的成员。

参数

-Alias <string[]>

指定要从脚本模块文件中导出的别名。输入别名。允许使用通配符。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

true

-Cmdlet <string[]>

指定要从脚本模块文件中导出的 cmdlet。输入 cmdlet 名称。允许使用通配符。

不能在脚本模块文件中创建 cmdlet,但可将二进制模块中的 cmdlet 导入到脚本模块中,然后重新从该脚本模块中导出这些 cmdlet。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

true

-Function <string[]>

指定要从脚本模块文件中导出的函数。输入函数名称。允许使用通配符。还可以通过管道将函数名称字符串传送给 Export-ModuleMember。

是否为必需?

false

位置?

1

默认值

是否接受管道输入?

true (ByValue, ByPropertyName)

是否接受通配符?

true

-Variable <string[]>

指定要从脚本模块文件中导出的变量。输入变量名称(不带美元符号)。允许使用通配符。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

true

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

System.String

可以通过管道将函数名称字符串传递给 Export-ModuleMember。

输出

None

此 cmdlet 将不产生任何输出。

说明

要从导出成员的列表中排除某个成员,请添加一个 Export-ModuleMember 命令,使之列出所有其他成员,但忽略要排除的成员。

示例 1

C:\PS>Export-ModuleMember -function * -alias *

说明
-----------
此命令导出在脚本模块中定义的别名和函数。

为了导出别名(默认情况下不会导出别名),还必须明确地指定函数。否则,只会导出别名。






示例 2

C:\PS>Export-ModuleMember -function Get-Test, New-Test, Start-Test -alias gtt, ntt, stt

说明
-----------
此命令导出在脚本模块中定义的三个别名和三个函数。

可以使用此命令格式指定模块成员的名称。






示例 3

C:\PS>Export-ModuleMember

说明
-----------
此命令指定不导出在脚本模块中定义的成员。

此命令阻止导出模块成员,但不隐藏模块成员。用户可以读取和复制模块成员,或使用调用运算符 (&) 来调用未导出的模块成员。






示例 4

C:\PS>Export-ModuleMember -variable increment

说明
-----------
此命令只从脚本模块中导出 $increment 变量,而不会导出其他成员。

若要导出某个变量,除了导出模块中的函数之外,Export-ModuleMember 命令还必须包含所有这些函数的名称和该变量的名称。






示例 5

C:\PS># From TestModule.psm1

function new-test 
    { <function code> }
export-modulemember -function new-test

function validate-test 
    { <function code> }

function start-test 
    { <function code> }
set-alias stt start-test
export-modulemember -function *-test -alias stt

说明
-----------
这些命令说明如何解释脚本模块 (.psm1) 文件中的多条 Export-ModuleMember 命令。

这些命令创建了三个函数和一个别名,然后导出其中两个函数和该别名。

如果没有 Export-ModuleMember 命令,将会导出全部三个函数,但不会导出别名。使用 Export-ModuleMember 命令,只导出 Get-Test 和 Start-Test 函数,并导出 STT 别名。






示例 6

C:\PS>new-module -script {function SayHello {"Hello!"}; set-alias Hi SayHello; Export-ModuleMember -alias Hi -function SayHello}

说明
-----------
此命令说明了如何在使用 New-Module cmdlet 创建的动态模块中使用 Export-ModuleMember。

在此示例中,Export-ModuleMember 用于同时导出该动态模块中的“Hi”别名和“SayHello”函数。






示例 7

C:\PS>function export
{
    param (
        [parameter(mandatory=$true)] [validateset("function","variable")] $type,
        [parameter(mandatory=$true)] $name,
        [parameter(mandatory=$true)] $value
    )
    if ($type -eq "function")
    {
        Set-item "function:script:$name" $value
        Export-ModuleMember $name
    }
    else
    {
        Set-Variable -scope Script $name $value
        Export-ModuleMember -variable $name
    }
} 

export function New-Test 
{
  ...
}


function helper
{
  ...
}

export variable interval 0
$interval = 2

说明
-----------
此示例包含一个名为 Export 的函数,用于声明函数或创建变量,然后为该函数或变量编写一条 Export-ModuleMember 命令。这样可以通过单个命令声明和导出函数或变量。

若要使用 Export 函数,请将其包含在脚本模块中。若要导出某一函数,请在 Function 关键字之前键入“Export”。

若要导出某一变量,请使用以下格式声明该变量并为其设置值:

    export variable <variable-name> <value>

该示例中的命令显示了正确的格式。在此示例中,只导出 New-Test 函数和 $Interval 变量。






另请参阅




目录