about_Function_Provider
Název poskytovatele
Function
Jednotky
Function:
Možnosti
ShouldProcess
Krátký popis
Poskytuje přístup k funkcím definovaným v PowerShellu.
Podrobný popis
Zprostředkovatel funkcí PowerShellu umožňuje získat, přidat, změnit, vymazat a odstranit funkce a filtry v PowerShellu.
Funkce je pojmenovaný blok kódu, který provádí akci. Když zadáte název funkce, spustí se kód ve funkci. Filtr je pojmenovaný blok kódu, který vytváří podmínky pro akci. Místo podmínky můžete zadat název filtru, například v Where-Object
příkazu.
Jednotka funkce je plochý obor názvů, který obsahuje pouze objekty funkce a filtrování. Funkce ani filtry nemají podřízené položky.
Zprostředkovatel funkce podporuje následující rutiny, které jsou popsané v tomto článku.
Typy vystavené tímto poskytovatelem
Každá funkce je instance System.Management.Automation.FunctionInfo třídy. Každý filtr je instance Třídy System.Management.Automation.FilterInfo .
Navigace na jednotce funkcí
Poskytovatel funkce zveřejňuje své úložiště dat na jednotce Function:
. Pokud chcete pracovat s funkcemi, můžete změnit umístění na jednotku Function:
(Set-Location Function:
). Nebo můžete pracovat z jiné jednotky PowerShellu. Pokud chcete odkazovat na funkci z jiného umístění, použijte název jednotky (Function:
) v cestě.
Set-Location Function:
Pokud se chcete vrátit na jednotku systému souborů, zadejte název jednotky. Zadejte například:
Set-Location C:
S poskytovatelem funkce můžete pracovat také z libovolné jiné jednotky PowerShellu. Pokud chcete odkazovat na funkci z jiného umístění, použijte název Function:
jednotky v cestě.
Poznámka:
PowerShell používá aliasy, které vám umožní pracovat se známým způsobem práce s cestami zprostředkovatele. Příkazy jako dir
ls
a jsou teď aliasy pro Get-ChildItem, cd
je alias pro Set-Location. a pwd
je alias pro Get-Location.
Získání funkcí
Tento příkaz získá seznam všech funkcí v aktuální relaci. Tento příkaz můžete použít z libovolné jednotky PowerShellu.
Get-ChildItem -Path Function:
Zprostředkovatel funkce nemá žádné kontejnery, takže výše uvedený příkaz má stejný účinek při použití s Get-ChildItem
.
Get-ChildItem -Path Function:
Definici funkce můžete načíst tak, že se dostanete k vlastnosti Definition , jak je znázorněno níže.
(Get-Item -Path function:more).Definition
Definici funkce můžete také načíst pomocí jeho cesty zprostředkovatele s předponou znaku dolaru ($
).
$function:more
Pokud chcete načíst definici funkce s pomlčkou (-
) v názvu, zalomte hodnotu za znakem dolaru složenými závorkami.
${function:Clear-Host}
Získání vybraných funkcí
Tento příkaz získá man
funkci z Function:
jednotky. K získání funkce používá Get-Item
rutinu. Operátor kanálu (|
) odešle výsledek do Format-Table
. Parametr -Wrap
směruje text, který se nevejde na řádek na další řádek. Parametr -Autosize
změní velikost sloupců tabulky tak, aby vyhovoval textu.
Get-Item -Path man | Format-Table -Wrap -Autosize
Práce s cestami zprostředkovatele funkcí
Oba tyto příkazy získají funkci s názvem c:
. První příkaz lze použít na libovolné jednotce. Druhý příkaz se použije na jednotce Function:
. Protože název končí dvojtečka, což je syntaxe jednotky, musíte kvalifikovat cestu názvem jednotky. Function:
V jednotce můžete použít některý z formátů. V druhém příkazu představuje tečka (.
) aktuální umístění.
PS C:\> Get-Item -Path Function:c:
PS Function:\> Get-Item -Path .\c:
Vytvoření funkce
Tento příkaz pomocí rutiny New-Item
vytvoří funkci s názvem Win32:
.
Výraz ve složených závorkách je blok skriptu, který je reprezentován názvem funkce.
New-Item -Path Function:Win32: -Value {Set-Location C:\Windows\System32}
Funkci můžete vytvořit také tak, že ji zadáte na příkazovém řádku PowerShellu. Například tpe Function:Win32: {Set-Location C:\Windows\System32}
. Pokud jste na Function:
jednotce, můžete název jednotky vynechat.
Odstranění funkce
Tento příkaz odstraní more
funkci z aktuální relace.
Remove-Item Function:more
Změna funkce
Tento příkaz pomocí rutiny Set-Item
změní prompt
funkci tak, aby zobrazoval čas před cestou.
Set-Item -Path Function:prompt -Value {
'PS '+ (Get-Date -Format t) + " " + (Get-Location) + '> '
}
Přejmenování funkce
Tento příkaz používá rutinu Rename-Item
ke změně názvu help
funkce na gh
.
Rename-Item -Path Function:help -NewName gh
Kopírování funkce
Tento příkaz zkopíruje prompt
funkci do oldPrompt
a efektivně vytvoří nový název bloku skriptu, který je přidružen k funkci výzvy.
Tuto funkci můžete použít k uložení původní funkce výzvy, pokud ji plánujete změnit.
Vlastnost Options nové funkce má hodnotu None
. Chcete-li změnit hodnotu vlastnosti Options , použijte Set-Item
.
Copy-Item -Path Function:prompt -Destination Function:oldPrompt
Dynamické parametry
Dynamické parametry jsou parametry rutiny přidané zprostředkovatelem PowerShellu a jsou k dispozici pouze v případech, kdy se rutina používá na jednotce s podporou poskytovatele.
Možnosti <[System.Management.Automation.ScopedItemOptions]>
Určuje hodnotu vlastnosti Options funkce.
None
: Žádné možnosti.None
je výchozí možnost.Constant
: Funkci nelze odstranit a její vlastnosti nelze změnit.Constant
je k dispozici pouze při vytváření funkce. Možnost existující funkce nelze změnit naConstant
.Private
: Funkce je viditelná pouze v aktuálním oboru.- (nikoli v podřízených oborech).
ReadOnly
: Vlastnosti funkce nelze změnit s výjimkou použití parametru-Force
. Funkci můžete odstranitRemove-Item
.AllScope
: Funkce se zkopíruje do všech nově vytvořených oborů.
Podporované rutiny
Použití kanálu
Rutiny zprostředkovatele přijímají vstup kanálu. Kanál můžete použít ke zjednodušení úlohy odesláním dat zprostředkovatele z jedné rutiny do jiné rutiny zprostředkovatele. Další informace o tom, jak používat kanál s rutinami zprostředkovatele, najdete v odkazech na rutiny uvedené v tomto článku.
Získání nápovědy
Od windows PowerShellu 3.0 můžete získat přizpůsobená témata nápovědy pro rutiny zprostředkovatele, která vysvětlují, jak se tyto rutiny chovají na jednotce systému souborů.
Pokud chcete získat témata nápovědy, která jsou přizpůsobená pro jednotku systému souborů, spusťte příkaz Get-Help na jednotce systému souborů nebo pomocí -Path
parametru Get-Help zadejte jednotku systému souborů.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path function: