Description
Cmdlet
Export-ModuleMember
會指定從腳本模組匯出的模組成員 (
.psm1
) 檔案,或使用 Cmdlet 建立的
New-Module
動態模組。 模組成員包含 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
Accept pipeline input:True
Accept wildcard characters:True
-Cmdlet
指定從指令碼模組檔案匯出的 Cmdlet。 輸入 Cmdlet 名稱。
允許使用萬用字元。
您無法在指令碼模組檔案中建立 Cmdlet,但可將二進位模組中的 Cmdlet 匯入指令碼模組,然後從指令碼模組重新匯出它們。
Type:
String
[
]
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:True
-Function
指定從指令碼模組檔案匯出的函式。 輸入函式名稱。
允許使用萬用字元。 您也可以使用管線將函式名稱字串傳送至
Export-ModuleMember
。
Type:
String
[
]
Position:0
Default value:None
Accept pipeline input:True
Accept wildcard characters:True
-Variable
指定從指令碼模組檔案匯出的變數。 輸入變數名稱,而不輸入貨幣符號字元 (
$
) 。 允許使用萬用字元。
Type:
String
[
]
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:True
String
您可以使用管線將函式名稱字串傳送至此 Cmdlet。
此 Cmdlet 不會傳回任何輸出。
若要從匯出成員清單中排除成員,請新增命令
Export-ModuleMember
,以列出所有其他成員,但省略您要排除的成員。
Get-Module
Import-Module
Remove-Module
about_Modules