Sdílet prostřednictvím


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 .

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 oldPrompta 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 na Constant.
  • 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 odstranit Remove-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:

Viz také