指定要导出的模块成员。
语法
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 变量。
另请参阅