about_Function_Provider

Providernamn

Funktion

Drivrutiner

Function:

Funktioner

ShouldProcess

Kort beskrivning

Ger åtkomst till de funktioner som definierats i PowerShell.

Detaljerad beskrivning

Med PowerShell-funktionsprovidern kan du hämta, lägga till, ändra, rensa och ta bort funktionerna och filtren i PowerShell.

En funktion är ett namngivet kodblock som utför en åtgärd. När du skriver funktionsnamnet körs koden i funktionen. Ett filter är ett namngivet kodblock som upprättar villkor för en åtgärd. Du kan skriva namnet på filtret i stället för villkoret, till exempel i ett Where-Object kommando.

Funktionsenheten är ett platt namnområde som endast innehåller funktions- och filterobjekten. Varken funktioner eller filter har underordnade objekt.

Funktionsprovidern stöder följande cmdletar, som beskrivs i den här artikeln.

Typer som exponeras av den här providern

Varje funktion är en instans av klassen System.Management.Automation.FunctionInfo . Varje filter är en instans av klassen System.Management.Automation.FilterInfo .

Funktionsprovidern exponerar sitt datalager på Function: enheten. Om du vill arbeta med funktioner kan du ändra din plats till Function: enheten (Set-Location Function:). Eller så kan du arbeta från en annan PowerShell-enhet. Om du vill referera till en funktion från en annan plats använder du enhetsnamnet (Function:) i sökvägen.

Set-Location Function:

Om du vill återgå till en filsystemenhet skriver du enhetsnamnet. Skriv till exempel:

Set-Location C:

Du kan också arbeta med funktionsprovidern från andra PowerShell-enheter. Om du vill referera till en funktion från en annan plats använder du enhetsnamnet Function: i sökvägen.

Kommentar

PowerShell använder alias för att ge dig ett välbekant sätt att arbeta med providersökvägar. Kommandon som dir och ls är nu alias för Get-ChildItem är cd ett alias för Set-Location. och pwd är ett alias för Get-Location.

Hämta funktioner

Det här kommandot hämtar listan över alla funktioner i den aktuella sessionen. Du kan använda det här kommandot från valfri PowerShell-enhet.

Get-ChildItem -Path Function:

Funktionsprovidern har inga containrar, så kommandot ovan har samma effekt när det används med Get-ChildItem.

Get-ChildItem -Path Function:

Du kan hämta en funktions definition genom att komma åt egenskapen Definition enligt nedan.

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

Du kan också hämta en funktions definition med dess providersökväg som föregås av dollartecknet ($).

$function:more

Om du vill hämta definitionen för en funktion som har ett bindestreck (-) i namnet omsluter du värdet efter dollartecknet i klammerparenteser.

${function:Clear-Host}

Hämta valda funktioner

Det här kommandot hämtar man funktionen från Function: enheten. Den använder cmdleten Get-Item för att hämta funktionen. Pipelineoperatorn (|) skickar resultatet till Format-Table. Parametern -Wrap dirigerar text som inte får plats på raden till nästa rad. Parametern -Autosize ändrar storlek på tabellkolumnerna så att den passar texten.

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

Arbeta med sökvägar för funktionsprovider

Båda dessa kommandon hämtar funktionen med namnet c:. Det första kommandot kan användas på valfri enhet. Det andra kommandot används i Function: enheten. Eftersom namnet slutar i ett kolon, vilket är syntaxen för en enhet, måste du kvalificera sökvägen med enhetsnamnet. Function: I enheten kan du använda båda formaten. I det andra kommandot representerar punkten (.) den aktuella platsen.

PS C:\> Get-Item -Path Function:c:
PS Function:\> Get-Item -Path .\c:

Skapa en funktion

Det här kommandot använder cmdleten New-Item för att skapa en funktion med namnet Win32:. Uttrycket i klammerparenteser är skriptblocket som representeras av funktionsnamnet.

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

Du kan också skapa en funktion genom att skriva den på PowerShell-kommandoraden. Till exempel tpe Function:Win32: {Set-Location C:\Windows\System32}. Om du är i Function: enheten kan du utelämna enhetsnamnet.

Ta bort en funktion

Det här kommandot tar more: bort funktionen från den aktuella sessionen.

Remove-Item Function:more:

Ändra en funktion

Det här kommandot använder cmdleten Set-Itemprompt för att ändra funktionen så att den visar tiden före sökvägen.

Set-Item -Path Function:prompt -Value {
  'PS '+ (Get-Date -Format t) + " " + (Get-Location) + '> '
  }

Byt namn på en funktion

Det här kommandot använder cmdleten Rename-Item för att ändra namnet på help funktionen till gh.

Rename-Item -Path Function:help -NewName gh

Kopiera en funktion

Det här kommandot kopierar prompt funktionen till oldPromptoch skapar effektivt ett nytt namn för skriptblocket som är associerat med promptfunktionen. Du kan använda detta för att spara den ursprungliga promptfunktionen om du planerar att ändra den. Egenskapen Alternativ för den nya funktionen har värdet None. Om du vill ändra värdet för egenskapen Alternativ använder du Set-Item.

Copy-Item -Path Function:prompt -Destination Function:oldPrompt

Dynamiska parametrar

Dynamiska parametrar är cmdlet-parametrar som läggs till av en PowerShell-provider och är endast tillgängliga när cmdleten används på den provideraktiverade enheten.

Alternativ <[System.Management.Automation.ScopedItemOptions]>

Avgör värdet för egenskapen Alternativ för en funktion.

  • None: Inga alternativ. None används som standard.
  • Constant: Det går inte att ta bort funktionen och dess egenskaper kan inte ändras. Constant är endast tillgängligt när du skapar en funktion. Du kan inte ändra alternativet för en befintlig funktion till Constant.
  • Private: Funktionen visas endast i det aktuella omfånget
  • (inte i underordnade omfång).
  • ReadOnly: Funktionens egenskaper kan inte ändras förutom med hjälp av parametern -Force . Du kan använda Remove-Item för att ta bort funktionen.
  • AllScope: Funktionen kopieras till alla nya omfång som skapas.

Cmdletar stöds

Använda pipelinen

Provider-cmdletar accepterar pipelineindata. Du kan använda pipelinen för att förenkla uppgiften genom att skicka providerdata från en cmdlet till en annan provider-cmdlet. Mer information om hur du använder pipelinen med provider-cmdletar finns i cmdlet-referenserna i den här artikeln.

Få hjälp

Från och med Windows PowerShell 3.0 kan du få anpassade hjälpavsnitt för provider-cmdletar som förklarar hur dessa cmdletar beter sig på en filsystemenhet.

Om du vill få hjälpavsnitt som är anpassade för filsystemenheten kör du ett Get-Help-kommando på en filsystemenhet eller använder parametern -PathGet-Help för att ange en filsystemenhet.

Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path function:

Se även