about_Function_Provider

提供者名稱

函式

磁碟機

Function:

功能

ShouldProcess

簡短描述

提供存取 PowerShell 中定義的函式。

詳細描述

PowerShell 式提供者可讓您取得、新增、變更、清除和刪除 PowerShell 中的函式和篩選。

函式是執行動作的程式代碼具名區塊。 當您輸入函式名稱時,函式中的程式代碼會執行。 篩選條件是一個具名的程式代碼區塊,可建立動作的條件。 您可以輸入篩選的名稱來取代條件,例如在命令中 Where-Object

式磁碟驅動器是只包含函式和篩選物件的一般命名空間。 函式和篩選都沒有子專案。

式提供者支援本文所涵蓋的下列 Cmdlet。

此提供者公開的類型

每個函式都是 System.Management.Automation.FunctionInfo 類別的實例。 每個篩選都是 System.Management.Automation.FilterInfo 類別的實例。

提供者會在磁碟驅動器中 Function: 公開其數據存放區。 若要使用函式,您可以將位置變更為 Function: 磁碟驅動器 (Set-Location Function:)。 或者,您可以從另一個 PowerShell 磁碟驅動器工作。 若要從另一個位置參考函式,請使用路徑中的磁碟驅動器名稱 (Function:)。

Set-Location Function:

若要返回檔案系統磁碟驅動器,請輸入磁碟驅動器名稱。 例如,鍵入:

Set-Location C:

您也可以從任何其他 PowerShell 磁碟驅動器使用 式提供者。 若要從其他位置參考函式,請使用路徑中的磁碟驅動器名稱 Function:

注意

PowerShell 會使用別名,讓您熟悉使用提供者路徑的方式。 和 之類的dirls命令現在是 Get-ChildItem別名,cd是 Set-Location別名。 和 pwd 是 Get-Location別名。

取得函式

此命令會取得目前工作階段中所有函式的清單。 您可以從任何 PowerShell 磁碟驅動器使用此命令。

Get-ChildItem -Path Function:

函式提供者沒有容器,因此在搭配 Get-ChildItem使用 時,上述命令的效果相同。

Get-ChildItem -Path Function:

您可以藉由存取 Definition 屬性來擷取函式的定義,如下所示。

(Get-Item -Path function:more).Definition

您也可以使用以貨幣符號 ($) 開頭的提供者路徑來擷取函式的定義。

$function:more

若要擷取名稱中有虛線 (-) 的函式定義,請將值包裝在大括號中的貨幣符號後面。

${function:Clear-Host}

取得選取的函式

此命令會從Function:磁碟驅動器取得函man式。 它會使用 Get-Item Cmdlet 來取得函式。 管線運算子 (|) 會將結果傳送至 Format-Table。 參數會將 -Wrap 不符合行的文字導向下一行。 參數會 -Autosize 調整數據表數據行的大小,以容納文字。

Get-Item -Path man | Format-Table -Wrap -Autosize

使用函式提供者路徑

這些命令都會取得名為 c:的函式。 第一個命令可用於任何磁碟驅動器。 第二個命令會在磁碟驅動器中使用 Function: 。 由於名稱結尾為冒號,也就是磁碟驅動器的語法,因此您必須使用磁碟驅動器名稱來限定路徑。 在磁碟驅動器內 Function: ,您可以使用任一格式。 在第二個命令中,點 (.) 代表目前的位置。

PS C:\> Get-Item -Path Function:c:
PS Function:\> Get-Item -Path .\c:

建立函式

此命令會 New-Item 使用 Cmdlet 來建立稱為 Win32:的函式。 大括弧中的表達式是函式名稱所代表的腳本區塊。

New-Item -Path Function:Win32: -Value {Set-Location C:\Windows\System32}

您也可以在 PowerShell 命令列輸入函式來建立函式。 例如,tpe Function:Win32: {Set-Location C:\Windows\System32}。 如果您位於磁碟驅動器中 Function: ,可以省略磁碟驅動器名稱。

刪除函式

此命令會從目前的工作階段中刪除函 more: 式。

Remove-Item Function:more:

變更函式

此命令會 Set-Item 使用 Cmdlet 來變更函 prompt 式,使其顯示路徑之前的時間。

Set-Item -Path Function:prompt -Value {
  'PS '+ (Get-Date -Format t) + " " + (Get-Location) + '> '
  }

重新命名函式

這個指令會 Rename-Item 使用 Cmdlet 將函式的名稱 help 變更為 gh

Rename-Item -Path Function:help -NewName gh

複製函式

此命令會將 promptoldPrompt式複製到 ,有效地為與提示函式相關聯的腳本區塊建立新名稱。 如果您打算變更它,您可以使用此選項來儲存原始的提示函式。 新 函式的 Options 屬性具有 的值 None。 若要變更 Options 屬性的值,請使用 Set-Item

Copy-Item -Path Function:prompt -Destination Function:oldPrompt

動態參數

動態參數是PowerShell提供者所新增的 Cmdlet 參數,只有在啟用提供者的磁碟驅動器中使用 Cmdlet 時才能使用。

選項 <[System.Management.Automation.ScopedItemOptions]>

決定函式的 Options 屬性值。

  • None:沒有選項。 None 是預設值。
  • Constant:無法刪除函式,而且無法變更其屬性。 Constant 只有在您建立函式時才能使用。 您無法將現有函式的選項變更為 Constant
  • Private:函式只能在目前的範圍內顯示
  • (不在子範圍中)。
  • ReadOnly:除非使用 -Force 參數,否則無法變更函式的屬性。 您可以使用 Remove-Item 來移除函式。
  • AllScope:函式會複製到任何已建立的新範圍。

支援的 Cmdlet

使用管線

提供者 Cmdlet 接受管線輸入。 您可以使用管線來簡化工作,方法是將提供者數據從某個 Cmdlet 傳送至另一個提供者 Cmdlet。 若要深入瞭解如何搭配提供者 Cmdlet 使用管線,請參閱本文中提供的 Cmdlet 參考。

取得說明

從 Windows PowerShell 3.0 開始,您可以取得提供者 Cmdlet 的自定義說明主題,說明這些 Cmdlet 在文件系統磁碟驅動器中的運作方式。

若要取得針對文件系統磁碟驅動器自定義的說明主題,請在檔案系統磁碟驅動器中執行 Get-Help 命令,或使用 -Path Get-Help 的參數來指定檔案系統磁碟驅動器。

Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path function:

另請參閱