about_Function_Provider
Nazwa dostawcy
Function
Dyski
Function:
Możliwości
ShouldProcess
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 i 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 zamiast warunku, na przykład w Where-Object
poleceniu.
Dysk funkcji to płaska przestrzeń nazw, która zawiera 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 omówione 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 .
Nawigowanie po dysku funkcji
Dostawca funkcji uwidacznia swój magazyn danych na Function:
dysku. Aby pracować z funkcjami, możesz zmienić lokalizację na Function:
dysk (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 Function:
dysku w ścieżce.
Uwaga
Program PowerShell używa aliasów, aby umożliwić ci znaną pracę ze ścieżkami dostawcy. Polecenia, takie jak dir
i ls
są teraz aliasami dla polecenia Get-ChildItem, cd
są aliasem dla polecenia Set-Location. i pwd
jest aliasem 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 jest używany z Get-ChildItem
.
Get-ChildItem -Path Function:
Definicję funkcji można pobrać, korzystając z właściwości Definition , 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 z kreską (-
) w nazwie, zawijaj wartość po znaku dolara w nawiasach klamrowych.
${function:Clear-Host}
Pobieranie wybranych funkcji
To polecenie pobiera man
funkcję z Function:
dysku. Używa Get-Item
polecenia cmdlet do pobrania funkcji. Operator potoku (|
) wysyła wynik do .Format-Table
-Wrap
Parametr kieruje tekst, który nie pasuje do wiersza 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 dostawcy funkcji
Oba te polecenia pobierają funkcję o nazwie c:
. Pierwsze polecenie może być używane na dowolnym dysku. Drugie polecenie jest używane na Function:
dysku. Ponieważ nazwa kończy się dwukropkiem, czyli składnią dysku, należy zakwalifikować ścieżkę z nazwą dysku. Function:
Na dysku 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 New-Item
polecenia cmdlet do utworzenia funkcji o nazwie Win32:
.
Wyrażenie w nawiasach klamrowych to blok skryptu reprezentowany przez nazwę funkcji.
New-Item -Path Function:Win32: -Value {Set-Location C:\Windows\System32}
Funkcję można również utworzyć, wpisując ją w wierszu polecenia programu PowerShell. Na przykład tpe Function:Win32: {Set-Location C:\Windows\System32}
. Jeśli jesteś na Function:
dysku, możesz pominąć nazwę dysku.
Usuwanie funkcji
To polecenie usuwa more
funkcję z bieżącej sesji.
Remove-Item Function:more
Zmienianie funkcji
To polecenie używa Set-Item
polecenia cmdlet do zmiany prompt
funkcji, aby wyświetlić czas przed ścieżką.
Set-Item -Path Function:prompt -Value {
'PS '+ (Get-Date -Format t) + " " + (Get-Location) + '> '
}
Zmienianie nazwy funkcji
To polecenie używa Rename-Item
polecenia cmdlet , aby zmienić nazwę help
funkcji na gh
.
Rename-Item -Path Function:help -NewName gh
Kopiowanie funkcji
To polecenie kopiuje prompt
funkcję do oldPrompt
, skutecznie tworząc nową nazwę bloku skryptu skojarzonego z funkcją monitu.
Można go użyć do zapisania oryginalnej funkcji monitu, jeśli planujesz ją zmienić.
Właściwość Options nowej funkcji ma wartość None
. Aby zmienić wartość właściwości Opcje , użyj polecenia 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. Wartość domyślna toNone
.Constant
: Nie można usunąć funkcji, a jej właściwości nie można zmienić.Constant
jest dostępny tylko podczas tworzenia funkcji. Nie można zmienić opcji istniejącej funkcji naConstant
.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
. Możesz użyćRemove-Item
polecenia , aby usunąć funkcję.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. Potok umożliwia uproszczenie zadania, wysyłając dane dostawcy z jednego polecenia cmdlet do innego dostawcy. Aby dowiedzieć się więcej na temat używania potoku z poleceniami cmdlet dostawcy, zobacz odwołania do poleceń cmdlet podanych w tym artykule.
Uzyskiwanie pomocy
Począwszy od programu Windows PowerShell 3.0, możesz uzyskać dostosowane tematy pomocy dla poleceń cmdlet dostawcy, które wyjaśniają, jak te polecenia cmdlet zachowują się na dysku 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 -Path
parametru Get-Help , aby określić dysk systemu plików.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path function: