共用方式為


Export-ModuleMember

指定導出的模組成員。

語法

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

Description

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

這些命令顯示文本模組 (.psm1) 檔案中如何解譯多個 Export-ModuleMember 命令。

這些命令會建立三個函式和一個別名,然後匯出兩個函式和別名。

如果沒有 Export-ModuleMember 命令,則會匯出所有三個函式和別名。 使用 Export-ModuleMember 命令,只會匯出 New-TestStart-Test 函式和 STT 別名。

範例 6:匯出動態模組中的成員

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:在單一命令中宣告和導出函式

# From TestModule.psm1
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 {Write-Output 'I am New-Test function'}
function helper {Write-Output 'I am helper function'}

Export variable Interval 0
$Interval = 2

此範例包含名為 Export 的函式,可宣告函式或建立變數,然後為函式或變數寫入 Export-ModuleMember 命令。 這可讓您在單一命令中宣告和導出函式或變數。

若要使用 Export 函式,請將它包含在腳本模組中。 若要匯出函式,請在 Function 關鍵詞之前輸入 Export

若要匯出變數,請使用下列格式來宣告變數並設定其值:

Export variable <variable-name> <value>

範例中的命令會顯示正確的格式。 在此範例中,只會匯出 new-Test 函式和$Interval 變數

參數

-Alias

指定從文稿模組檔案導出的別名。 輸入別名名稱。 允許通配符。

類型:String[]
Position:Named
預設值:None
必要:False
接受管線輸入:True
接受萬用字元:True

-Cmdlet

指定從文稿模組檔案導出的 Cmdlet。 輸入 Cmdlet 名稱。 允許通配符。

您無法在腳本模組檔案中建立 Cmdlet,但您可以將二進位模組中的 Cmdlet 匯入腳本模組,然後從腳本模組重新匯出。

類型:String[]
Position:Named
預設值:None
必要:False
接受管線輸入:True
接受萬用字元:True

-Function

指定從文稿模組檔案導出的函式。 輸入函式名稱。 允許通配符。 您也可以使用管線將函式名稱字串傳送至 Export-ModuleMember

類型:String[]
Position:0
預設值:None
必要:False
接受管線輸入:True
接受萬用字元:True

-Variable

指定從文稿模組檔案導出的變數。 輸入變數名稱,不含貨幣符號。 允許通配符。

類型:String[]
Position:Named
預設值:None
必要:False
接受管線輸入:True
接受萬用字元:True

輸入

String

您可以使用管線將函式名稱字串傳送至此 Cmdlet。

輸出

None

此 Cmdlet 不會產生任何輸出。

備註

  • 若要從導出成員清單中排除成員,請新增 Export-ModuleMember 命令,其中會列出所有其他成員,但省略您要排除的成員。