Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
- Získat-Umístění
- set-location
- Získat-Položku
- Nová položka
- odebrat položku
- vymazat položku
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.
Navigace na jednotce funkcí
Poskytovatel funkce 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
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.Noneje výchozí. -
Constant: Funkci nelze odstranit a její vlastnosti nelze změnit.Constantje k dispozici pouze při vytváření funkce. Možnost existující funkce nelze změnit naConstant. -
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: