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 .
Navigera i funktionsenheten
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-Item
prompt
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 oldPrompt
och 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 tillConstant
.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ändaRemove-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 -Path
Get-Help för att ange en filsystemenhet.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path function: