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 的別名,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
複製函式
此命令會將函prompt
oldPrompt
式複製到 ,有效地為與提示函式相關聯的腳本區塊建立新名稱。
如果您想要變更它,就可以使用此命令來儲存原始提示函式。
新函式的 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: