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 會使用別名,讓您熟悉使用提供者路徑的方式。 和 之類的dir
ls
命令現在是 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: