Export-ModuleMember
指定要导出的模块成员。
语法
Export-ModuleMember
[[-Function] <String[]>]
[-Cmdlet <String[]>]
[-Variable <String[]>]
[-Alias <String[]>]
[<CommonParameters>]
说明
Export-ModuleMember
cmdlet 指定从脚本模块 (.psm1
) 文件导出的模块成员,或从使用 New-Module
cmdlet 创建的动态模块导出的模块成员。 模块成员包括 cmdlet、函数、变量和别名。 此 cmdlet 只能用于脚本模块文件或动态模块。
如果脚本模块不包含 Export-ModuleMember
命令,则会导出脚本模块中的函数和别名,但不会导出变量。 当脚本模块包含 Export-ModuleMember
命令时,仅导出命令中指定的 Export-ModuleMember
成员。 还可以使用 Export-ModuleMember
来禁止或导出脚本模块从其他模块导入的成员。
命令 Export-ModuleMember
是可选的,但它是最佳做法。 即使该命令确认了默认值,但它演示了模块作者的初衷。
示例
示例 1:导出脚本模块中的函数和别名
Export-ModuleMember -Function * -Alias *
此命令导出脚本模块中定义的所有函数和别名。
示例 2:导出特定别名和函数
Export-ModuleMember -Function Get-Test, New-Test, Start-Test -Alias gtt, ntt, stt
此命令导出在脚本模块中定义的三个别名和三个函数。
可以使用此命令格式指定模块成员的名称。
示例 3:不导出成员
Export-ModuleMember
此命令指定不导出在脚本模块中定义的成员。
此命令阻止导出模块成员,但不隐藏模块成员。
用户可以读取和复制模块成员,或使用调用运算符 (&
) 调用未导出的模块成员。
示例 4:导出某一特定变量
Export-ModuleMember -Variable increment
此命令仅 $increment
导出脚本模块中的变量。
不导出其他成员。
如果要导出变量,除了导出模块中的函数外, Export-ModuleMember
命令还必须包含所有函数的名称和变量的名称。
示例 5:多个导出命令
# From TestModule.psm1
function New-Test
{
Write-Output 'I am New-Test function'
}
Export-ModuleMember -Function New-Test
function Validate-Test
{
Write-Output 'I am Validate-Test function'
}
function Start-Test
{
Write-Output 'I am Start-Test function'
}
Set-Alias stt Start-Test
Export-ModuleMember -Function Start-Test -Alias stt
这些命令显示如何在脚本模块中解释多个 Export-ModuleMember
命令 (.psm1
) 文件。
这些命令创建了三个函数和一个别名,然后导出其中两个函数和该别名。
Export-ModuleMember
如果没有命令,将导出所有三个函数和别名。 Export-ModuleMember
使用 命令,仅New-Test
导出 和 Start-Test
函数和STT
别名。
示例 6:导出动态模块中的成员
New-Module -Script {function SayHello {"Hello!"}; Set-Alias Hi SayHello; Export-ModuleMember -Alias Hi -Function SayHello}
此命令演示如何 Export-ModuleMember
在使用 cmdlet 创建的动态模块中使用 New-Module
。
在此示例中, Export-ModuleMember
用于导出动态模块中的 Hi
别名和 SayHello
函数。
参数
-Alias
指定要从脚本模块文件中导出的别名。 输入别名。 允许使用通配符。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Cmdlet
指定要从脚本模块文件中导出的 cmdlet。 输入 cmdlet 名称。 允许使用通配符。
不能在脚本模块文件中创建 cmdlet,但可将二进制模块中的 cmdlet 导入到脚本模块中,然后重新从该脚本模块中导出这些 cmdlet。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Function
指定要从脚本模块文件中导出的函数。 输入函数名称。
允许使用通配符。 还可以通过管道将函数名称字符串传递给 Export-ModuleMember
。
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Variable
指定要从脚本模块文件中导出的变量。 输入变量名称,不带美元符号字符 ($
) 。 允许使用通配符。
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | True |
输入
可以通过管道将函数名称字符串传递给此 cmdlet。
输出
None
此 cmdlet 将不生成任何输出。
备注
- 若要从导出成员列表中排除某个成员,请添加一个
Export-ModuleMember
命令,该命令列出所有其他成员,但省略要排除的成员。