Udostępnij za pośrednictwem


o_Dostawcy_Funkcji

Nazwa dostawcy

Funkcja

Drives

Function:

Capabilities

PowinienPrzetwarzać

Krótki opis

Zapewnia dostęp do funkcji zdefiniowanych w programie PowerShell.

Szczegółowy opis

Dostawca funkcji programu PowerShell umożliwia pobieranie, dodawanie, zmienianie, czyszczenie i usuwanie funkcji oraz filtrów w programie PowerShell.

Funkcja jest nazwanym blokiem kodu, który wykonuje akcję. Po wpiseniu nazwy funkcji zostanie uruchomiony kod w funkcji. Filtr jest nazwanym blokiem kodu, który ustanawia warunki dla akcji. Możesz wpisać nazwę filtru na przykład zamiast warunku w poleceniu Where-Object.

Dysk funkcji jest płaską przestrzenią nazw zawierającą tylko obiekty funkcji i filtru. Ani funkcje, ani filtry nie mają elementów podrzędnych.

Dostawca funkcji obsługuje następujące polecenia cmdlet, które zostały opisane w tym artykule.

Typy uwidocznione przez tego dostawcę

Każda funkcja jest wystąpieniem klasy System.Management.Automation.FunctionInfo. Każdy filtr jest wystąpieniem klasy System.Management.Automation.FilterInfo.

Dostawca funkcji uwidacznia magazyn danych na dysku . Aby pracować z funkcjami, możesz zmienić lokalizację na dysk Function: (Set-Location Function:). Możesz też pracować z innego dysku programu PowerShell. Aby odwołać się do funkcji z innej lokalizacji, użyj nazwy dysku (Function:) w ścieżce.

Set-Location Function:

Aby powrócić do dysku systemu plików, wpisz nazwę dysku. Na przykład wpisz:

Set-Location C:

Możesz również pracować z dostawcą funkcji z dowolnego innego dysku programu PowerShell. Aby odwołać się do funkcji z innej lokalizacji, użyj nazwy dysku Function: w ścieżce.

Notatka

Program PowerShell używa aliasów, aby zapewnić ci znany sposób pracy ze ścieżkami dostarczonymi przez dostawcę. Polecenia takie jak dir i ls są teraz aliasami dla Get-ChildItem, cd jest aliasem dla Set-Location, a pwd jest aliasem dla Get-Location.

Pobieranie funkcji

To polecenie pobiera listę wszystkich funkcji w bieżącej sesji. Tego polecenia można użyć z dowolnego dysku programu PowerShell.

Get-ChildItem -Path Function:

Dostawca funkcji nie ma kontenerów, więc powyższe polecenie ma taki sam efekt, gdy używane jest z Get-ChildItem.

Get-ChildItem -Path Function:

Definicję funkcji można pobrać, korzystając z właściwości definicji , jak pokazano poniżej.

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

Definicję funkcji można również pobrać przy użyciu ścieżki dostawcy poprzedzonej znakiem dolara ($).

$Function:more

Aby pobrać definicję funkcji, której nazwa zawiera kreskę (-), umieść wartość po znaku dolara w nawiasach klamrowych.

${Function:Clear-Host}

Pobieranie wybranych funkcji

To polecenie pobiera funkcję man z dysku Function:. Do pobrania funkcji używa polecenia cmdlet Get-Item. Operator potoku (|) przekazuje wynik do Format-Table. Parametr -Wrap kieruje tekst, który nie mieści się w wierszu w następnym wierszu. Parametr -AutoSize zmienia rozmiar kolumn tabeli, aby uwzględnić tekst.

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

Praca ze ścieżkami dostarczania funkcji

Obie te komendy pobierają funkcję o nazwie C:. Pierwsze polecenie może być używane na dowolnym dysku. Drugie polecenie jest używane na dysku Function:. Ponieważ nazwa kończy się dwukropkiem, co jest typowe dla dysku, należy określić ścieżkę z nazwą dysku. Na dysku Function: można użyć dowolnego formatu. W drugim poleceniu kropka (.) reprezentuje bieżącą lokalizację.

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

Tworzenie funkcji

To polecenie używa polecenia cmdlet New-Item do utworzenia funkcji o nazwie Win32:. Wyrażenie w nawiasach klamrowych jest blokiem skryptu reprezentowanym przez nazwę funkcji.

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

Zakresy

Podobnie jak zmienne, funkcje należą do określonego zakresu. Podczas tworzenia funkcji jest ona dostępna tylko w zakresie, w którym została utworzona. Aby udostępnić funkcję, użyj modyfikatora zakresu podczas tworzenia funkcji. Aby uzyskać więcej informacji, zobacz about_Scopes.

W poniższym przykładzie użyto modyfikatora zakresu Global: w celu utworzenia funkcji w zakresie globalnym.

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 modyfikatora zakresu Global: funkcja zostanie utworzona w zakresie lokalnym. Gdy New-Function zakończy działanie nowo utworzonej funkcji, nie będzie już istnieć.

Usuwanie funkcji

To polecenie usuwa funkcję more z bieżącej sesji.

Remove-Item Function:more

Zmienianie funkcji

To polecenie używa cmdletu Set-Item, aby zmienić funkcję prompt, tak by wyświetlała czas przed ścieżką.

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

Zmienianie nazwy funkcji

To polecenie używa polecenia cmdlet Rename-Item, aby zmienić nazwę funkcji help na gh.

Rename-Item -Path Function:help -NewName gh

Kopiowanie funkcji

To polecenie kopiuje prompt funkcję do oldPrompt, skutecznie tworząc nową nazwę dla skryptblock, który jest skojarzony z funkcją prompt. Można go użyć do zapisania oryginalnej funkcji monitu, jeśli planujesz ją zmienić. Właściwość Opcje w nowej funkcji ma wartość None. Aby zmienić wartość właściwości Opcje, użyj Set-Item.

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

Parametry dynamiczne

Parametry dynamiczne to parametry poleceń cmdlet, które są dodawane przez dostawcę programu PowerShell i są dostępne tylko wtedy, gdy polecenie cmdlet jest używane na dysku obsługującym dostawcę.

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

Określa wartość właściwości Options funkcji.

  • None: brak opcji. None jest wartością domyślną.
  • Constant: nie można usunąć funkcji i nie można zmienić jej właściwości. Constant jest dostępna tylko podczas tworzenia funkcji. Nie można zmienić opcji istniejącej funkcji na Constant.
  • Private: Funkcja jest widoczna tylko w bieżącym zakresie
  • (nie w zakresach podrzędnych).
  • ReadOnly: nie można zmienić właściwości funkcji z wyjątkiem użycia parametru -Force. Aby usunąć funkcję, możesz użyć Remove-Item.
  • AllScope: funkcja jest kopiowana do wszystkich nowych utworzonych zakresów.

Obsługiwane polecenia cmdlet

Korzystanie z potoku

Polecenia cmdlet dostawcy akceptują dane wejściowe potoku. Możesz wykorzystać przepływ, aby uprościć zadanie, wysyłając dane dostawcy z jednego polecenia cmdlet do innego polecenia cmdlet dostawcy. Aby dowiedzieć się więcej o używaniu potoku z poleceniami cmdlet dostawcy, zapoznaj się z odniesieniami do poleceń cmdlet podanymi w tym artykule.

Uzyskiwanie pomocy

Począwszy od Windows PowerShell 3.0, możesz uzyskać dostosowane tematy pomocy dla cmdletów dostawcy, które wyjaśniają, jak te cmdlety zachowują się w napędzie systemu plików.

Aby uzyskać tematy pomocy dostosowane dla dysku systemu plików, uruchom polecenie Get-Help na dysku systemu plików lub użyj parametru -PathGet-Help, aby określić dysk systemu plików.

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

Zobacz także