Export-ModuleMember
指定匯出的模組成員。
語法
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 從二進位模組匯入至指令碼模組,然後從指令碼模組重新匯出。
必要? |
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。 |
輸出 |
無 這個 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 <變數名稱> <值>
此範例中的命令示範了正確的格式。在這個範例中,只會匯出 New-Test 函數和 $Interval 變數。