Sdílet prostřednictvím


about_Function_Provider

Název poskytovatele

Funkce

Drives

Function:

Capabilities

ShouldProcess

Krátký popis

Poskytuje přístup k funkcím definovaným v PowerShellu.

Podrobný popis

Zprostředkovatel funkce 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 příkazu Where-Object.

Jednotka Function je jednoduchý obor názvů, který obsahuje pouze objekty funkce a filtru. Funkce ani filtry nemají podřízené položky.

Poskytovatel function podporuje následující rutiny, které jsou popsané v tomto článku.

Typy vystavené tímto poskytovatelem

Každá funkce je instancí třídy System.Management.Automation.FunctionInfo. Každý filtr je instance System.Management.Automation.FilterInfo třídy.

Poskytovatel funkce zveřejňuje své úložiště dat na jednotce . Pokud chcete pracovat s funkcemi, můžete se přepnout na jednotku Function: (Set-Location Function:). Nebo můžete pracovat z jiného disku PowerShell. Pokud chcete odkazovat na funkci z jiného umístění, použijte v cestě název jednotky (Function:).

Set-Location Function:

Pokud se chcete vrátit na jednotku systému souborů, zadejte název jednotky. Zadejte například:

Set-Location C:

Můžete také pracovat s poskytovatelem Function z libovolného jiného disku PowerShell. Pokud chcete odkazovat na funkci z jiného umístění, použijte název jednotky Function: v cestě.

Poznámka

PowerShell používá aliasy, které vám umožní pracovat známým způsobem s cestami poskytovatele. Příkazy jako a jsou teď aliasy pro Get-ChildItem, je alias pro Set-Location a 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 Definice, jak je znázorněno níže.

(Get-Item -Path Function:more).Definition

Definici funkce můžete také načíst pomocí cesty providera, která je předložena znakem dolaru ($).

$Function:more

Chcete-li získat definici funkce, která má v názvu pomlčku (-), zabalte hodnotu za znakem dolaru do složených závorek.

${Function:Clear-Host}

Získání vybraných funkcí

Tento příkaz získá funkci man z jednotky Function:. Pomocí cmdletu Get-Item získává funkci. Operátor kanálu (|) odešle výsledek Format-Table. Parametr -Wrap směruje text, který se nevejde na řádek na další řádek. Parametr -AutoSize změní velikost sloupců tabulky tak, aby odpovídal textu.

Get-Item -Path man | Format-Table -Wrap -AutoSize

Práce s cestami poskytovatele 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žívá v jednotce Function:. Protože název končí dvojtečkou, což je syntaxe pro jednotku, musíte cestu kvalifikovat názvem jednotky. V Function: jednotce můžete použít některý z formátů. Ve 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 používá rutinu New-Item k vytvoření funkce s názvem Win32:. Výraz ve složených závorkách je skriptblock, který je reprezentován názvem funkce.

New-Item -Path Function:Win32: -Value {Set-Location C:\Windows\System32}

Oblasti

Stejně jako proměnné patří funkce do určitého oboru. Když vytvoříte funkci, je k dispozici pouze v oboru, ve kterém byla vytvořena. Pokud chcete funkci zpřístupnit, použijte při vytváření funkce modifikátor oboru. Další informace najdete v části about_Scopes.

Následující příklad používá modifikátor oboru Global: k vytvoření funkce v globálním oboru.

function New-Function {
    param(
        [string] $Name,
        [scriptblock] $Script
    )

    $lp = "Function:\Global:$($Name)"
    Set-Item -LiteralPath $lp -Value $Script -PassThru -Force
}

New-Function -Name 'Win32:' -Script { Set-Location C:\Windows\System32 }

Bez modifikátoru oboru Global: by se funkce vytvořila v místním oboru. Když New-Function ukončí nově vytvořenou funkci, už neexistuje.

Odstranění funkce

Tento příkaz odstraní funkci more z aktuální relace.

Remove-Item Function:more

Změna funkce

Tento příkaz používá rutinu Set-Item ke změně funkce prompt tak, aby zobrazovala č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 funkce help 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 pro scriptblock, který je přidružen k funkci příkazového řádku. 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 Možnosti, 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í.
  • 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 rámci aktuálního oboru.
  • (nikoli v podřízených oborech).
  • ReadOnly: Vlastnosti funkce nelze změnit s výjimkou použití parametru -Force. Funkci můžete odstranit pomocí Remove-Item.
  • AllScope: Funkce se zkopíruje do všech nově vytvořených oborů.

Podporované cmdlety

Použití kanálu

Příkazy rutiny zprostředkovatele přijímají vstup datového toku. 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 pipelinu s rutinnými příkazy poskytovatele, najdete v odkazech na rutiny cmdletů uvedených 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 cmdlety poskytovatele, která vysvětlují, jak se tyto cmdlety chovají v 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 použijte -Path parametr Get-Help určit jednotku systému souborů.

Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path Function:

Viz také