共用方式為


about_Function_Provider

提供者名稱

函式

磁碟機

Function:

功能

ShouldProcess

簡短描述

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

詳細描述

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

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

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

式提供者支援下列 Cmdlet,本文涵蓋這些 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 會使用別名,讓您熟悉使用提供者路徑。 和 ls 之類的dir命令現在是 Get-ChildItem 的別名,cdSet-Location 的別名。 和 pwdGet-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 命令,或使用 -PathGet-Help 參數來指定檔案系統磁碟驅動器。

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

另請參閱