Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Notatka redakcyjna
Ważna
Windows PowerShell Language Specification 3.0 została opublikowana w grudniu 2012 r. i jest oparta na programie Windows PowerShell 3.0. Ta specyfikacja nie odzwierciedla bieżącego stanu programu PowerShell. Nie ma planu aktualizacji tej dokumentacji w celu odzwierciedlenia bieżącego stanu. Ta dokumentacja jest przedstawiona tutaj w celu uzyskania informacji historycznych.
Dokument specyfikacji jest dostępny jako dokument Microsoft Word z Centrum pobierania Microsoft pod adresem: https://www.microsoft.com/download/details.aspx?id=36389 Ten dokument Word został przekonwertowany na prezentację tutaj w witrynie Microsoft Learn. Podczas konwersji wprowadzono pewne zmiany redakcyjne w celu dostosowania formatowania dla platformy Docs. Usunięto niektóre literówki i drobne błędy.
W programie PowerShell każda wartość ma typ, a typy dzielą się na jedną z dwóch głównych kategorii: typy wartości i typy referencyjne. Rozważ typ int, który jest typowy dla typów wartości. Wartość typu int jest całkowicie samodzielna. Wszystkie bity potrzebne do reprezentowania tej wartości są przechowywane w tej wartości, a każdy wzorzec bitowy w tej wartości reprezentuje prawidłową wartość dla jego typu. Teraz rozważ typ int[]tablicy , który jest typowy dla typów odwołań. Tak zwana wartość typu tablicy może zawierać odwołanie do obiektu, który faktycznie zawiera elementy tablicy, lub odwołanie o wartości null , którego wartość to $null. Ważne rozróżnienie między dwiema kategoriami typów najlepiej przedstawiać różnice w ich semantyce podczas przypisywania. Na przykład
$i = 100 # $i designates an int value 100
$j = $i # $j designates an int value 100, which is a copy
$a = 10,20,30 # $a designates an object[], Length 3, value 10,20,30
$b = $a # $b designates exactly the same array as does $a, not a copy
$a[1] = 50 # element 1 (which has a value type) is changed from 20 to 50
$b[1] # $b refers to the same array as $a, so $b[1] is 50
Jak widać, przypisanie wartości typu odwołania obejmuje płytkią kopię; oznacza to, że kopia odwołania do obiektu, a nie jego rzeczywista wartość. Natomiast kopia głęboka wymaga również utworzenia kopii obiektu.
Typ liczbowy jest taki, który umożliwia reprezentację wartości całkowitych lub ułamkowych oraz obsługuje operacje arytmetyczne na tych wartościach. Zestaw typów liczbowych zawiera liczbę całkowitą (§4.2.3) i liczbę rzeczywistą (§4.2.4), ale nie zawiera wartości logicznej (§4.2.1) ani char (§4.2.2). Implementacja może udostępniać inne typy liczbowe (takie jak podpisany bajt, liczba całkowita bez znaku i liczby całkowite innych rozmiarów).
Kolekcja jest grupą co najmniej jednego powiązanego elementu, które nie muszą mieć tego samego typu.
Przykłady typów kolekcji to tablice, stosy, kolejki, listy i tabele skrótów. Program może wyliczać (lub iterować) przez elementy w kolekcji, uzyskując jednocześnie dostęp do każdego elementu. Typowe sposoby wykonania tej czynności dotyczą instrukcji foreach (§8.4.4) i polecenia cmdlet ForEach-Object . Typ obiektu, który reprezentuje moduł wyliczający, jest opisany w §4.5.16.
W tym rozdziale znajdują się tabele, które zawierają listę dostępnych elementów członkowskich dla danego typu. W przypadku metod typ jest zapisywany w następującym formularzu: returnType ArgumentTypeList/. Jeśli lista typów argumentów jest zbyt długa, aby zmieścić się w tej kolumnie, zostanie ona wyświetlona w kolumnie Purpose zamiast tego.
Inne typy liczb całkowitych to SByte, , UInt16Int16, UInt32i UInt64, wszystkie w systemie przestrzeni nazw.
Wiele klas kolekcji jest zdefiniowanych jako część przestrzeni nazw System.Collections lub System.Collections.Generic . Większość klas kolekcji implementuje interfejsy ICollection, IComparer, IEnumerable, IList, IDictionaryi IDictionaryEnumerator ich ogólne odpowiedniki.
Można również użyć nazw skróconych dla niektórych typów. Aby uzyskać więcej informacji, zobacz about_Type_Accelerators.
4.1 Typy specjalne
4.1.1 Typ pustki
Nie można utworzyć wystąpienia tego typu. Umożliwia ona jawne odrzucenie wartości przy użyciu operatora rzutowania (§7.2.9).
4.1.2 Typ null
Typ null ma jedno wystąpienie, zmienną automatyczną $null (§2.3.2.2), znaną również jako wartość null. Ta wartość zapewnia metodę wyrażania "nicości" w kontekstach referencyjnych. Cechy tego typu nie są określone.
4.1.3 Typ obiektu
Każdy typ w programie PowerShell z wyjątkiem typu null (§4.1.2) pochodzi bezpośrednio lub pośrednio z obiektu typu, więc obiekt jest ostatecznym typem podstawowym wszystkich typów innych niż null. Zmienna ograniczona (§5.3) do typu obiektu w ogóle nie jest ograniczona, ponieważ może zawierać wartość dowolnego typu.
4.2 Typy wartości
4.2.1 Wartość logiczna
Typ logiczny to bool. Istnieją tylko dwie wartości tego typu, False i True, reprezentowane przez zmienne $false automatyczne i $true, odpowiednio (§2.3.2.2).
W programie PowerShell bool mapuje na System.Boolean.
4.2.2 Znak
Wartość znaku ma typ char, który może przechowywać dowolny punkt kodu Unicode zakodowany w formacie UTF-16-bitowy.
Typ char ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Maksymalna Wartość | Właściwość statyczna (tylko do odczytu) | char | Największa możliwa wartość typu char |
| wartość minimalna | Właściwość statyczna (tylko do odczytu) | char | Najmniejsza możliwa wartość typu char |
| Iscontrol | Metoda statyczna | bool/char | Sprawdza, czy znak jest znakiem kontrolnym |
| Isdigit | Metoda statyczna | bool/char | Sprawdza, czy znak jest cyfrą dziesiętną |
| IsLetter | Metoda statyczna | bool/char | Sprawdza, czy znak jest literą alfabetyczną |
| Isletterordigit | Metoda statyczna | bool/char | Sprawdza, czy znak jest cyfrą dziesiętną lub literą alfabetyczną |
| Islower | Metoda statyczna | bool/char | Sprawdza, czy znak jest małą literą alfabetyczną |
| Ispunctuation | Metoda statyczna | bool/char | Sprawdza, czy znak jest znakiem interpunkcyjnym |
| Isupper | Metoda statyczna | bool/char | Sprawdza, czy znak jest wielką literą alfabetyczną |
| IsWhiteSpace | Metoda statyczna | bool/char | Sprawdza, czy znak jest znakiem odstępu. |
| ToLower | Metoda statyczna | znak/ciąg | Konwertuje znak na małe litery |
| Funkcja ToUpper | Metoda statyczna | znak/ciąg | Konwertuje znak na wielkie litery |
Windows PowerShell: char mapuje na System.Char.
4.2.3 Liczba całkowita
Istnieją dwa typy liczb całkowitych ze znakiem, oba typy są używane dla wartości ujemnych:
- Typ
int, który używa 32 bitów dając mu zakres -2147483648 do +2147483647, włącznie. - Typ
long, który używa 64 bitów dając mu zakres -9223372036854775808 do +9223372036854775807, włącznie.
Typ int ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Maksymalna Wartość | Właściwość statyczna (tylko do odczytu) | int | Największa możliwa wartość typu int |
| wartość minimalna | Właściwość statyczna (tylko do odczytu) | int | Najmniejsza możliwa wartość typu int |
Typ ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Maksymalna Wartość | Właściwość statyczna (tylko do odczytu) | długi | Największa możliwa wartość typu długa |
| wartość minimalna | Właściwość statyczna (tylko do odczytu) | długi | Najmniejsza możliwa wartość typu długa |
Istnieje jeden niepodpisany typ liczby całkowitej:
- Typ
byte, który używa 8 bitów dając mu zakres od 0 do 255, włącznie.
Typ byte ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Maksymalna Wartość | Właściwość statyczna (tylko do odczytu) | bajt | Największa możliwa wartość bajtu typu |
| wartość minimalna | Właściwość statyczna (tylko do odczytu) | bajt | Najmniejsza możliwa wartość bajtu typu |
W programie PowerShell, , i mapuj odpowiednio na System.ByteSystem.Int32, i System.Int64.longintbyte
4.2.4 Liczba rzeczywista
4.2.4.1 zmiennoprzecinkowe i podwójne
Istnieją dwa typy rzeczywiste (lub zmiennoprzecinkowe):
- Typ
floatużywa 32-bitowej reprezentacji jednoprecyzyjnej IEEE. - Typ
doubleużywa 64-bitowej reprezentacji IEEE o podwójnej precyzji.
Trzecia nazwa typu, single, jest synonimem typu float; float jest używana w całej tej specyfikacji.
Chociaż rozmiar i reprezentacja typów float i double są zdefiniowane przez tę specyfikację, implementacja może używać rozszerzonej precyzji dla wyników pośrednich.
Typ float ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Maksymalna Wartość | Właściwość statyczna (tylko do odczytu) | float | Największa możliwa wartość typu zmiennoprzecinkowa |
| wartość minimalna | Właściwość statyczna (tylko do odczytu) | float | Najmniejsza możliwa wartość typu float |
| NaN | Właściwość statyczna (tylko do odczytu) | float | Stała wartość Not-a-Number |
| Negativeinfinity | Właściwość statyczna (tylko do odczytu) | float | Stała wartość nieskończoności ujemnej |
| Positiveinfinity | Właściwość statyczna (tylko do odczytu) | float | Nieskończoność dodatnia wartości stałej |
Typ double ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Maksymalna Wartość | Właściwość statyczna (tylko do odczytu) | podwójny | Największa możliwa wartość typu podwójna |
| wartość minimalna | Właściwość statyczna (tylko do odczytu) | podwójny | Najmniejsza możliwa wartość typu podwójna |
| NaN | Właściwość statyczna (tylko do odczytu) | podwójny | Stała wartość Not-a-Number |
| Negativeinfinity | Właściwość statyczna (tylko do odczytu) | podwójny | Stała wartość nieskończoności ujemnej |
| Positiveinfinity | Właściwość statyczna (tylko do odczytu) | podwójny | Nieskończoność dodatnia wartości stałej |
W programie PowerShell float i double zamapuj odpowiednio na System.Single i System.Double.
4.2.4.2 dziesiętne
Typ dziesiętny używa reprezentacji 128-bitowej. Co najmniej musi obsługiwać skalę s taką, że 0 <= s< = co najmniej 28, a zakres wartości -79228162514264337593543950335 do 79228162514264337593543950335. Rzeczywista reprezentacja liczby dziesiętnej jest zdefiniowana.
Typ dziesiętny ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Maksymalna Wartość | Właściwość statyczna (tylko do odczytu) | liczba dziesiętna | Największa możliwa wartość typu dziesiętnego |
| wartość minimalna | Właściwość statyczna (tylko do odczytu) | liczba dziesiętna | Najmniejsza możliwa wartość typu dziesiętnego |
Uwaga / Notatka
Liczby rzeczywiste dziesiętne mają cechę o nazwie skala, która reprezentuje liczbę cyfr po prawej stronie przecinka dziesiętnego. Na przykład wartość 2.340 ma skalę 3, gdzie końcowe zera są znaczące. Po dodaniu lub odjęciu dwóch liczb rzeczywistych dziesiętnych skala wyniku jest większa od dwóch skali. Na przykład 1.0 + 2.000 to 3.000, a 5.0 – 2.00 to 3.00. Po mnożeniu dwóch liczb rzeczywistych dziesiętnych skala wyniku jest sumą dwóch skali. Na przykład 1.0 * 2.000 to 2.0000. Po podzieleniu dwóch liczb dziesiętnych skala wyniku jest skalą pierwszej mniejszej skali sekundy. Na przykład 4.00000/2.000 to 2.00. Jednak skala nie może być mniejsza niż wymagana do zachowania poprawnego wyniku. Na przykład 3.000/2.000, 3.00/2.000, 3.0/2.000 i 3/2 są wszystkie 1,5.
W programie PowerShell decimal mapuje na System.Decimal. Reprezentacja liczby dziesiętnej jest następująca:
- Jeśli zostanie uznana za tablicę czterech
intwartości, zawiera następujące elementy:- Indeks 0 (bity 0–31) zawiera 32 bity współczynnika dziesiętnego o niskiej kolejności.
- Indeks 1 (bity 32-63) zawiera środkowe 32 bity współczynnika dziesiętnego.
- Indeks 2 (bity 64-95) zawiera 32 bity współczynnika dziesiętnego o wysokiej kolejności.
- Indeks 3 (bity 96-127) zawiera bit i skalę znaku w następujący sposób:
- bity 0--15 są zerowe
- bity 16-23 zawierają skalę jako wartość 0--28
- bity 24-30 są zerowe
- bit 31 jest znakiem (0 dla dodatnich, 1 dla ujemnych)
4.2.5 Typ przełącznika
Ten typ służy do ograniczenia typu parametru w poleceniu (§8.10.5). Jeśli argument o odpowiedniej nazwie parametru jest obecny, testy parametrów $true; w przeciwnym razie testuje $falsewartość .
W programie PowerShell switch mapuje na System.Management.Automation.SwitchParameter.
4.2.6 Typy wyliczenia
Typ wyliczenia to taki, który definiuje zestaw nazwanych stałych reprezentujących wszystkie możliwe wartości, które można przypisać do obiektu tego typu wyliczenia. W niektórych przypadkach zestaw wartości jest taki, że tylko jedna wartość może być reprezentowana naraz. W innych przypadkach zestaw wartości jest odrębnymi uprawnieniami dwóch, a przy użyciu operatora -bor (§7.8.5) wiele wartości można kodować w tym samym obiekcie.
Środowisko programu PowerShell zawiera wiele typów wyliczenia, zgodnie z opisem w poniższych sekcjach.
Typ Action-Preference 4.2.6.1
Ten typ zdefiniowany przez implementację ma następujące wzajemnie wykluczające się dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Przeznaczenie |
|---|---|---|
| Kontynuuj | Stała wyliczenia | Środowisko uruchomieniowe programu PowerShell będzie kontynuować przetwarzanie i powiadamia użytkownika o wystąpieniu akcji. |
| Inquire | Stała wyliczenia | Środowisko uruchomieniowe programu PowerShell przestanie przetwarzać i pyta użytkownika, jak powinien kontynuować. |
| Silentlycontinue | Stała wyliczenia | Środowisko uruchomieniowe programu PowerShell będzie kontynuować przetwarzanie bez powiadamiania użytkownika o wystąpieniu akcji. |
| Zatrzymaj | Stała wyliczenia | Środowisko uruchomieniowe programu PowerShell przestanie przetwarzać po wystąpieniu akcji. |
W programie PowerShell ten typ to System.Management.Automation.ActionPreference.
Typ Confirm-Impact 4.2.6.2
Ten typ zdefiniowany przez implementację ma następujące wzajemnie wykluczające się dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Przeznaczenie |
|---|---|---|
| High | Stała wyliczenia | Wykonana akcja ma duże ryzyko utraty danych, takich jak ponowne sformatowanie dysku twardego. |
| Low | Stała wyliczenia | Wykonana akcja ma niskie ryzyko utraty danych. |
| Średni | Stała wyliczenia | Wykonana akcja ma średnie ryzyko utraty danych. |
| Żadne | Stała wyliczenia | Nie potwierdzaj żadnych akcji (pomijaj wszystkie żądania potwierdzenia). |
W programie PowerShell ten typ to System.Management.Automation.ConfirmImpact.
Typ File-Attributes 4.2.6.3
Ten typ zdefiniowany przez implementację ma następujące dostępne elementy członkowskie, które można połączyć:
| Członek | Rodzaj elementu członkowskiego | Przeznaczenie |
|---|---|---|
| Archiwum | Stała wyliczenia | Stan archiwum pliku. Aplikacje używają tego atrybutu do oznaczania plików do tworzenia kopii zapasowej lub usuwania. |
| Skompresowane | Stała wyliczenia | Plik jest skompresowany. |
| Urządzenie | Zastrzeżone do przyszłego użytku. | |
| Katalog | Stała wyliczenia | Plik jest katalogiem. |
| Szyfrowane | Stała wyliczenia | Plik lub katalog jest zaszyfrowany. W przypadku pliku oznacza to, że wszystkie dane w pliku są szyfrowane. W przypadku katalogu oznacza to, że szyfrowanie jest ustawieniem domyślnym dla nowo utworzonych plików i katalogów. |
| Ukryty | Stała wyliczenia | Plik jest ukryty, a tym samym nie znajduje się na liście zwykłych katalogów. |
| Standardowy | Stała wyliczenia | Plik jest normalny i nie ma innych atrybutów ustawionych. Ten atrybut jest prawidłowy tylko wtedy, gdy jest używany sam. |
| NotContentIndexed | Stała wyliczenia | Plik nie będzie indeksowany przez usługę indeksowania zawartości systemu operacyjnego. |
| W trybie offline | Stała wyliczenia | Plik jest w trybie offline. Dane pliku nie są natychmiast dostępne. |
| ReadOnly | Stała wyliczenia | Plik jest tylko do odczytu. |
| ReparsePoint | Stała wyliczenia | Plik zawiera punkt ponownej analizy, który jest blokiem danych zdefiniowanych przez użytkownika skojarzonych z plikiem lub katalogiem. |
| Plik rozrzedny | Stała wyliczenia | Plik jest plikiem rozrzednym. Pliki rozrzedłe to zazwyczaj duże pliki, których dane są przeważnie zerami. |
| System | Stała wyliczenia | Plik jest plikiem systemowym. Plik jest częścią systemu operacyjnego lub jest używany wyłącznie przez system operacyjny. |
| Temporary | Stała wyliczenia | Plik jest tymczasowy. Systemy plików próbują zachować wszystkie dane w pamięci w celu szybszego dostępu, a nie opróżniania danych z powrotem do magazynu masowego. Plik tymczasowy powinien zostać usunięty przez aplikację, gdy tylko nie jest już potrzebny. |
W programie PowerShell ten typ to System.IO.FileAttributes z atrybutem FlagsAttribute.
4.2.6.4 Typ regularnejExpression-Option
Ten typ zdefiniowany przez implementację ma następujące dostępne elementy członkowskie, które można połączyć:
| Członek | Rodzaj elementu członkowskiego | Przeznaczenie |
|---|---|---|
| Ignoruj litery | Stała wyliczenia | Określa, że dopasowanie jest bez uwzględniania wielkości liter. |
| Żadne | Stała wyliczenia | Określa, że nie ustawiono żadnych opcji. |
Implementacja może zawierać inne wartości.
W programie PowerShell ten typ ma System.Text.RegularExpressions.RegexOptions atrybut FlagsAttribute. Zdefiniowane są następujące dodatkowe wartości: Compiled, , CultureInvariantIgnorePatternWhitespaceExplicitCaptureMultilineECMAScript, . SinglelineRightToLeft
4.3 Typy referencyjne
4.3.1 Ciągi
Wartość ciągu ma ciąg typu i jest niezmienną sekwencją zero lub więcej znaków typu char, z których każdy zawiera zakodowany w formacie UTF-16-bitowy punkt kodu Unicode.
Ciąg typu ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Długość | Właściwość wystąpienia | int (tylko do odczytu) | Pobiera liczbę znaków w ciągu |
| ToLower | Instance, metoda | ciąg | Tworzy nowy ciąg zawierający małe litery równoważne |
| Funkcja ToUpper | Instance, metoda | ciąg | Tworzy nowy ciąg zawierający wielkie litery równoważne |
W programie PowerShell string mapuje na System.String.
4.3.2 Tablice
Wszystkie typy tablic pochodzą z typu array. Ten typ ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Długość | Właściwość wystąpienia (tylko do odczytu) | int | Liczba elementów w tablicy |
| Ranga | Właściwość wystąpienia (tylko do odczytu) | int | Liczba wymiarów w tablicy |
| Kopiować | Metoda statyczna | void/see Kolumna Przeznaczenia | Kopiuje szereg elementów z jednej tablicy do innej. Istnieją cztery wersje, w których źródło jest tablicą źródłową, miejsce docelowe to tablica docelowa, liczba elementów do skopiowania, a właściwość sourceIndex i destinationIndex to lokalizacje początkowe w odpowiednich tablicach: Copy(source, destination, int count) |
| GetLength | Metoda wystąpienia (tylko do odczytu) | int/none | Liczba elementów w danym wymiarze GetLength( wymiar int) |
Aby uzyskać więcej informacji na temat tablic, zobacz §9.
W programie PowerShell array mapuje na System.Array.
4.3.3 Tabele skrótów
Tabela skrótów typów ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Liczba | Właściwość wystąpienia | int | Pobiera liczbę par klucz/wartość w tabeli skrótu |
| Klucze | Właściwość wystąpienia | Zdefiniowane przez implementację | Pobiera kolekcję wszystkich kluczy |
| Wartości | Właściwość wystąpienia | Zdefiniowane przez implementację | Pobiera kolekcję wszystkich wartości |
| Usuń | Instance, metoda | void/none | Usuwa wyznaczony klucz/wartość |
Aby uzyskać więcej informacji na temat tabel skrótów, zobacz §10.
W programie PowerShell Hashtable mapuje na System.Collections.Hashtable.
Hashtable elementy są przechowywane w obiekcie typu DictionaryEntry, a kolekcje zwracane przez klucze i wartości mają typ ICollection.
4.3.4 Typ xml
Typ xml implementuje model obiektów dokumentów W3C (DOM) Poziom 1 Core i Core DOM Level 2. DOM jest reprezentacją drzewa w pamięci (pamięci podręcznej) dokumentu XML i umożliwia nawigację i edytowanie tego dokumentu. Ten typ obsługuje operator indeksu dolnego [] (§7.1.4.4).
W programie PowerShell xml mapuje na System.Xml.XmlDocument.
4.3.5 Typ wyrażenia regularnego
Typ regex zapewnia maszyny do obsługi przetwarzania wyrażeń regularnych. Służy do ograniczenia typu parametru (§5.3), którego odpowiadający argument może zawierać wyrażenie regularne.
W programie PowerShell regex mapuje na System.Text.RegularExpressions.Regex.
4.3.6 Typ odwołania
Zazwyczaj argumenty są przekazywane do poleceń według wartości. W przypadku argumentu o pewnym typie wartości jest przekazywana kopia wartości. W przypadku argumentu o jakimś typie odwołania jest przekazywana kopia odwołania.
Typ ref udostępnia maszyny umożliwiające przekazywanie argumentów do poleceń przy użyciu odwołania, dzięki czemu polecenia mogą modyfikować wartość argumentu. Typ ref ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Wartość | Właściwość wystąpienia (odczyt-zapis) | Typ przywoływanej wartości. | Pobiera/ustawia przywoływane wartości. |
Rozważmy następującą definicję funkcji i wywołanie:
function Doubler {
param ([ref]$x) # parameter received by reference
$x.Value *= 2.0 # note that 2.0 has type double
}
$number = 8 # designates a value of type int, value 8
Doubler([ref]$number) # argument received by reference
$number # designates a value of type double, value 8.0
Rozważ przypadek, w którym $number jest ograniczona do typu:
[int]$number = 8 # designates a value of type int, value 8
Doubler([ref]$number) # argument received by reference
$number # designates a value of type int, value 8
Jak pokazano, zarówno argument, jak i odpowiadający mu parametr muszą być zadeklarowane ref.
W programie PowerShell ref mapuje na System.Management.Automation.PSReference.
4.3.7 Typ blokady skryptu
Typ scriptblock reprezentuje wstępnie skompilowany blok tekstu skryptu (§7.1.8), który może być używany jako pojedyncza jednostka. Ma on następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Atrybuty | Właściwość wystąpienia (tylko do odczytu) | Kolekcja atrybutów | Pobiera atrybuty bloku skryptu. |
| Plik | Właściwość wystąpienia (tylko do odczytu) | ciąg | Pobiera nazwę pliku, w którym zdefiniowano blok skryptu. |
| Moduł | Właściwość wystąpienia (tylko do odczytu) | zdefiniowana implementacja ([§4.5.12][§4.5.12]) | Pobiera informacje o module, w którym zdefiniowano blok skryptu. |
| GetNewClosure | Metoda wystąpienia | scriptblock /Brak |
Pobiera blok skryptu powiązany z modułem. Wszystkie zmienne lokalne, które znajdują się w kontekście obiektu wywołującego, zostaną skopiowane do modułu. |
| Invoke | Metoda wystąpienia | Kolekcja obiektu/obiektu[] | Wywołuje blok skryptu z określonymi argumentami i zwraca wyniki. |
| InvokeReturnAsIs | Metoda wystąpienia | object/object[] | Wywołuje blok skryptu z określonymi argumentami i zwraca wszystkie wygenerowane obiekty. |
| Create | Metoda statyczna | scriptblock /Ciąg |
Tworzy nowy obiekt scriptblock zawierający określony skrypt. |
W programie PowerShell scriptblock mapuje na System.Management.Automation.ScriptBlock.
Invokezwraca kolekcję .PSObject
4.3.8 Typ matematyczny
Typ math zapewnia dostęp do niektórych stałych i metod przydatnych w obliczeniach matematycznych. Ma on następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| E | Właściwość statyczna (tylko do odczytu) | podwójny | Natural logarithmic base |
| PI | Właściwość statyczna (tylko do odczytu) | podwójny | Stosunek obwodu okręgu do jego średnicy |
| Abs | Metoda statyczna | numeryczne/liczbowe | Wartość bezwzględna (typ zwracany jest taki sam jak typ przekazanego argumentu) |
| Acos | Metoda statyczna | podwójna/podwójna | Kąt, którego cosinus jest określoną liczbą |
| Asin | Metoda statyczna | podwójna/podwójna | Kąt, którego sinus jest określoną liczbą |
| Atan | Metoda statyczna | podwójna/podwójna | Kąt, którego tangens jest określoną liczbą |
| Atan2 | Metoda statyczna | podwójna/podwójna y, podwójna x | Kąt, którego tangens jest ilorazem dwóch określonych liczb x i y |
| Sufit | Metoda statyczna | dziesiętny/dziesiętny podwójna/podwójna |
najmniejsza liczba całkowita większa lub równa określonej liczbie |
| Cos | Metoda statyczna | podwójna/podwójna | Cosinus określonego kąta |
| Cosh | Metoda statyczna | podwójna/podwójna | Cosinus hiperboliczny określonego kąta |
| Exp | Metoda statyczna | podwójna/podwójna | e podniesione do określonej mocy |
| Piętro | Metoda statyczna | dziesiętny/dziesiętny podwójna/podwójna |
Największa liczba całkowita mniejsza lub równa określonej liczbie |
| Rejestr | Metoda statyczna | podwójna/podwójna liczba podwójna/podwójna liczba, podwójna podstawa |
Logarytm liczby przy użyciu bazowej bazy e lub bazowej |
| Dziennik10 | Metoda statyczna | podwójna/podwójna | Logarytm base-10 określonej liczby |
| Max | Metoda statyczna | numeryczne/liczbowe | Większe z dwóch określonych liczb (zwracany typ jest taki sam jak typ przekazanych argumentów) |
| Minuta | Metoda statyczna | numeryczne/liczbowe, liczbowe | Mniejsze z dwóch określonych liczb (typ zwracany jest taki sam jak typ przekazanych argumentów) |
| Pow | Metoda statyczna | podwójna /podwójna x, podwójna y | Określona liczba x podniesiona do określonej mocy y |
| Sin | Metoda statyczna | podwójna/podwójna | Sinus określonego kąta |
| Sinh | Metoda statyczna | podwójna/podwójna | Sinus hiperboliczny określonego kąta |
| Sqrt | Metoda statyczna | podwójna/podwójna | Pierwiastek kwadratowy określonej liczby |
| Tan | Metoda statyczna | podwójna/podwójna | Tangens określonego kąta |
| Tanh | Metoda statyczna | podwójna/podwójna | Tangens hiperboliczny określonego kąta |
W programie PowerShell Math mapuje na System.Math.
4.3.9 Uporządkowany typ
Typ ordered jest pseudo typem używanym tylko do konwersji.
4.3.10 Typ obiektu pscustomobject
Typ pscustomobject jest pseudo typem używanym tylko do konwersji.
4.4 Typy ogólne
Wiele języków programowania i środowisk udostępnia typy, które mogą być wyspecjalizowane. Wiele z tych typów jest określanych jako typy kontenerów, ponieważ wystąpienia z nich mogą zawierać obiekty innego typu. Rozważ typ o nazwie Stack, który może reprezentować stos wartości, które można wypchnąć i wysunąć. Zazwyczaj użytkownik stosu chce przechowywać tylko jeden rodzaj obiektu na tym stosie. Jeśli jednak język lub środowisko nie obsługuje specjalizacji typu, należy zaimplementować wiele różnych wariantów typu Stack, mimo że wszystkie wykonują to samo zadanie, tylko z różnymi elementami typu.
Specjalizacja typu umożliwia zaimplementowanie typu ogólnego w taki sposób, że można go ograniczyć do obsługi niektórych podzestawów typów, gdy jest używany. Na przykład
- Ogólny typ stosu wyspecjalizowany do przechowywania ciągów może być zapisywany jako
Stack[string]. - Ogólny typ słownika wyspecjalizowany do przechowywania kluczy int ze skojarzonymi wartościami ciągów może być zapisywany jako
Dictionary[int,string]. - Stos ciągów może być zapisywany jako
Stack[Stack[string]].
Chociaż program PowerShell nie definiuje żadnych wbudowanych typów ogólnych, może używać takich typów, jeśli są one udostępniane przez środowisko hosta. Zobacz składnię w §7.1.10.
Pełną nazwą typu sugerowanego Stack[string] powyżej jest System.Collections.Generic.Stack[string]. Pełną nazwą typu sugerowanego Dictionary[int,string] powyżej jest System.Collections.Generic.Dictionary[int,string].
4.5 Typy anonimowe
W niektórych okolicznościach implementacja programu PowerShell tworzy obiekty pewnego typu, a te obiekty mają elementy członkowskie dostępne dla skryptu. Jednak rzeczywista nazwa tych typów nie musi być określona, tak długo, jak dostępne elementy członkowskie są wystarczająco określone, aby były używane. Oznacza to, że skrypty mogą zapisywać obiekty tych typów i uzyskiwać do nich dostęp bez znajomości nazw tych typów. Poniższe podsekcje określają te typy.
Typ opisu dostawcy 4.5.1
Ten typ hermetyzuje stan dostawcy. Ma on następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Drives | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację (§4.5.2) | Kolekcja obiektów opisu dysku |
| Nazwa | Właściwość wystąpienia (tylko do odczytu) | ciąg | Nazwa dostawcy |
W programie PowerShell ten typ to System.Management.Automation.ProviderInfo.
Typ opisu dysku 4.5.2
Ten typ hermetyzuje stan dysku. Ma on następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Bieżąca lokalizacja | Właściwość wystąpienia (odczyt-zapis) | ciąg | Bieżąca lokalizacja robocza (§3.1.4) dysku |
| Opis | Właściwość wystąpienia (odczyt-zapis) | ciąg | Opis dysku |
| Nazwa | Właściwość wystąpienia (tylko do odczytu) | ciąg | Nazwa dysku |
| Korzeń | Właściwość wystąpienia (tylko do odczytu) | ciąg | Nazwa dysku |
W programie PowerShell ten typ to System.Management.Automation.PSDriveInfo.
Typ opisu zmiennej 4.5.3
Ten typ hermetyzuje stan zmiennej. Ma on następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Atrybuty | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację | Kolekcja atrybutów |
| Opis | Właściwość wystąpienia (odczyt-zapis) | ciąg | Opis przypisany do zmiennej za pomocą poleceń cmdlet New-Variable lub Set-Variable . |
| Moduł | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację (§4.5.12) | Moduł, z którego wyeksportowano tę zmienną |
| Nazwa modułu | Właściwość wystąpienia (tylko do odczytu) | ciąg | Moduł, w którym zdefiniowano tę zmienną |
| Nazwa | Właściwość wystąpienia (tylko do odczytu) | ciąg | Nazwa przypisana do zmiennej, gdy została utworzona w języku programu PowerShell lub za pomocą New-Variable poleceń cmdlet i Set-Variable . |
| Opcje | Właściwość wystąpienia (odczyt-zapis) | ciąg | Opcje przypisane do zmiennej za pośrednictwem New-Variable poleceń cmdlet i Set-Variable . |
| Wartość | Właściwość wystąpienia (odczyt-zapis) | obiekt | Wartość przypisana do zmiennej, gdy została przypisana w języku programu PowerShell lub za pośrednictwem New-Variable poleceń cmdlet i Set-Variable . |
W programie PowerShell ten typ to System.Management.Automation.PSVariable.
Windows PowerShell: typ kolekcji atrybutów to System.Management.Automation.PSVariableAttributeCollection.
Typ opisu aliasu 4.5.4
Ten typ hermetyzuje stan aliasu. Ma on następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Typ polecenia | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację | Należy porównać wartość równą z wartością "Alias". |
| Definicja | Właściwość wystąpienia (tylko do odczytu) | ciąg | Polecenie lub alias, do którego alias został przypisany za pośrednictwem poleceń cmdlet New-Alias lub Set-Alias . |
| Opis | Właściwość wystąpienia (odczyt-zapis) | ciąg | Opis przypisany do aliasu New-Alias za pośrednictwem poleceń cmdlet lub Set-Alias . |
| Moduł | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację (§4.5.12) | Moduł, z którego został wyeksportowany ten alias |
| Nazwa modułu | Właściwość wystąpienia (tylko do odczytu) | ciąg | Moduł, w którym zdefiniowano ten alias |
| Nazwa | Właściwość wystąpienia (tylko do odczytu) | ciąg | Nazwa przypisana do aliasu, który został utworzony za pośrednictwem New-Alias poleceń cmdlet lub Set-Alias . |
| Opcje | Właściwość wystąpienia (odczyt-zapis) | ciąg | Opcje przypisane do aliasu za pośrednictwem New-Alias New-Alias lub Set-Alias poleceń cmdlet. |
| Outputtype | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Określa typy wartości wyjściowych przez polecenie, do którego odwołuje się alias. |
| Parametry | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Parametry polecenia. |
| Zestawy parametrów | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Informacje o zestawach parametrów skojarzonych z poleceniem . |
| Odwołanie do polecenia | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację | Informacje o poleceniu, do którego od razu odwołuje się ten alias. |
| ResolvedCommand | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację | Informacje o poleceniu, do którego alias ostatecznie zostanie rozwiązany. |
W programie PowerShell ten typ to System.Management.Automation.AliasInfo.
4.5.5 Typ opisu lokalizacji roboczej
Ten typ hermetyzuje stan lokalizacji roboczej. Ma on następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Napęd | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację (§4.5.2) | Obiekt opisu dysku |
| Path | Właściwość wystąpienia (tylko do odczytu) | ciąg | Lokalizacja robocza |
| Dostawca | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację (§4.5.1) | Dostawca |
| ProviderPath | Właściwość wystąpienia (tylko do odczytu) | ciąg | Bieżąca ścieżka dostawcy |
Stos lokalizacji roboczych jest kolekcją obiektów lokalizacji roboczej, zgodnie z powyższym opisem.
W programie PowerShell bieżąca lokalizacja robocza jest reprezentowana przez obiekt typu System.Management.Automation.PathInfo. Stos lokalizacji roboczych jest reprezentowany przez obiekt typu System.Management.Automation.PathInfoStack, który jest kolekcją PathInfo obiektów.
4.5.6 Typ opisu zmiennej środowiskowej
Ten typ hermetyzuje stan zmiennej środowiskowej. Ma on następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Nazwa | Właściwość wystąpienia (odczyt-zapis) | ciąg | Nazwa zmiennej środowiskowej |
| Wartość | Właściwość wystąpienia (odczyt-zapis) | ciąg | Wartość zmiennej środowiskowej |
W programie PowerShell ten typ to System.Collections.DictionaryEntry. Nazwa zmiennej to klucz słownika. Wartość zmiennej środowiskowej to wartość zdefiniowana w słowniku.
Nazwa jest równa AliasPropertykluczowi.
Typ opisu aplikacji 4.5.7
Ten typ hermetyzuje stan aplikacji. Ma on następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Typ polecenia | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację | Powinna być porównywana z wartością "Aplikacja". |
| Definicja | Właściwość wystąpienia (tylko do odczytu) | ciąg | Opis aplikacji. |
| Rozszerzenie | Właściwość wystąpienia (odczyt-zapis) | ciąg | Rozszerzenie pliku aplikacji. |
| Moduł | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację (§4.5.12) | Moduł definiujący to polecenie. |
| Nazwa modułu | Właściwość wystąpienia (tylko do odczytu) | ciąg | Nazwa modułu definiującego polecenie . |
| Nazwa | Właściwość wystąpienia (tylko do odczytu) | ciąg | Nazwa polecenia. |
| Outputtype | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Określa typy wartości wyjściowych za pomocą polecenia . |
| Parametry | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Parametry polecenia. |
| Zestawy parametrów | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Informacje o zestawach parametrów skojarzonych z poleceniem . |
| Path | Właściwość wystąpienia (tylko do odczytu) | ciąg | Pobiera ścieżkę pliku aplikacji. |
W programie PowerShell ten typ to System.Management.Automation.ApplicationInfo.
Typ opisu polecenia cmdlet 4.5.8
Ten typ hermetyzuje stan polecenia cmdlet. Ma on następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Typ polecenia | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację | Należy porównać wartość równą z poleceniem "Cmdlet". |
| DefaultParameterSet | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację | Domyślny zestaw parametrów używany, jeśli program PowerShell nie może określić, który parametr ma być używany na podstawie podanych argumentów. |
| Definicja | Właściwość wystąpienia (tylko do odczytu) | ciąg | Opis polecenia cmdlet. |
| HelpFile | Właściwość wystąpienia (odczyt-zapis) | ciąg | Ścieżka do pliku Pomocy dla polecenia cmdlet. |
| Implementowanie typu | Właściwość wystąpienia (odczyt-zapis) | Zdefiniowano implementację | Typ implementujący polecenie cmdlet. |
| Moduł | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację (§4.5.12) | Moduł definiujący to polecenie cmdlet. |
| Nazwa modułu | Właściwość wystąpienia (tylko do odczytu) | ciąg | Nazwa modułu definiującego polecenie cmdlet. |
| Nazwa | Właściwość wystąpienia (tylko do odczytu) | ciąg | Nazwa polecenia cmdlet. |
| Rzeczownik | Właściwość wystąpienia (tylko do odczytu) | ciąg | Nazwa nounu polecenia cmdlet. |
| Outputtype | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Określa typy wartości wyjściowych przez polecenie cmdlet. |
| Parametry | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Parametry polecenia cmdlet. |
| Zestawy parametrów | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Informacje o zestawach parametrów skojarzonych z poleceniem cmdlet. |
| Verb | Właściwość wystąpienia (tylko do odczytu) | ciąg | Nazwa czasownika polecenia cmdlet. |
| PSSnapIn | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację | Windows programu PowerShell: informacje o Windows przystawki programu PowerShell używanej do rejestrowania polecenia cmdlet. |
W programie PowerShell ten typ to System.Management.Automation.CmdletInfo.
4.5.9 Typ opisu skryptu zewnętrznego
Ten typ hermetyzuje stan skryptu zewnętrznego (taki, który jest bezpośrednio wykonywalny przez program PowerShell, ale nie jest wbudowany). Ma on następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Typ polecenia | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację | Należy porównać wartość równą "ExternalScript". |
| Definicja | Właściwość wystąpienia (tylko do odczytu) | ciąg | Definicja skryptu. |
| Moduł | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację (§4.5.12) | Moduł definiujący ten skrypt. |
| Nazwa modułu | Właściwość wystąpienia (tylko do odczytu) | ciąg | Nazwa modułu definiującego skrypt. |
| Nazwa | Właściwość wystąpienia (tylko do odczytu) | ciąg | Nazwa skryptu. |
| OriginalEncoding | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację | Oryginalne kodowanie używane do konwertowania znaków skryptu na bajty. |
| Outputtype | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Określa typy wartości wyjściowych skryptu. |
| Parametry | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Parametry skryptu. |
| Zestawy parametrów | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Informacje o zestawach parametrów skojarzonych ze skryptem. |
| Path | Właściwość wystąpienia (tylko do odczytu) | ciąg | Ścieżka do pliku skryptu. |
| ScriptBlock | Właściwość wystąpienia (tylko do odczytu) | scriptblock | Skrypt zewnętrzny. |
| ScriptContents | Właściwość wystąpienia (tylko do odczytu) | ciąg | Oryginalna zawartość skryptu. |
W programie PowerShell ten typ to System.Management.Automation.ExternalScriptInfo.
Typ opisu funkcji 4.5.10
Ten typ hermetyzuje stan funkcji. Ma on następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Polecenie cmdletBinding | Właściwość wystąpienia (tylko do odczytu) | bool | Wskazuje, czy funkcja używa tego samego powiązania parametrów, które są używane przez skompilowane polecenia cmdlet (zobacz §12.3.5). |
| Typ polecenia | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację | Można porównać równość z wartością "Function" lub "Filter", aby zobaczyć, które z tych obiektów reprezentuje. |
| DefaultParameterSet | Właściwość wystąpienia (tylko do odczytu) | ciąg | Określa zestaw parametrów do użycia, jeśli nie można go określić z argumentów (zobacz §12.3.5). |
| Definicja | Właściwość wystąpienia (tylko do odczytu) | ciąg | Wersja ciągu ScriptBlock |
| Opis | Właściwość wystąpienia (odczyt-zapis) | ciąg | Opis funkcji. |
| Moduł | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację (§4.5.12) | Moduł, z którego wyeksportowano tę funkcję |
| Nazwa modułu | Właściwość wystąpienia (tylko do odczytu) | ciąg | Moduł, w którym zdefiniowano tę funkcję |
| Nazwa | Właściwość wystąpienia (tylko do odczytu) | ciąg | Nazwa funkcji |
| Opcje | Właściwość wystąpienia (odczyt-zapis) | Zdefiniowano implementację | Opcje zakresu funkcji (§3.5.4). |
| Outputtype | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Określa typy wartości wyjściowych w kolejności (patrz §12.3.6). |
| Parametry | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Określa nazwy parametrów w kolejności. Jeśli funkcja działa jak polecenie cmdlet (zobacz cmdletBinding powyżej), typowe parametry są uwzględniane na końcu kolekcji. |
| Zestawy parametrów | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Informacje o zestawach parametrów skojarzonych z poleceniem . Dla każdego parametru wynik przedstawia nazwę i typ parametru oraz wskazuje, czy parametr jest obowiązkowy, według pozycji lub parametru [switch] . Jeśli funkcja działa jak polecenie cmdlet (zobacz cmdletBinding powyżej), typowe parametry są uwzględniane na końcu kolekcji. |
| ScriptBlock | Właściwość wystąpienia (tylko do odczytu) | scriptblock (§4.3.6) | Treść funkcji |
W programie PowerShell ten typ to System.Management.Automation.FunctionInfo.
-
CommandTypema typSystem.Management.Automation.CommandTypes. -
Optionsma typSystem.Management.Automation.ScopedItemOptions. -
OutputTypema typSystem.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.PSTypeName,System.Management.Automation]]. -
Parametersma typSystem.Collections.Generic.Dictionary``2[[System.String,mscorlib],[System.Management.Automation.ParameterMetadata,System.Management.Automation]]. -
ParameterSetsma typSystem.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.CommandParameterSetInfo,System.Management.Automation]]. - Widoczność ma typ
System.Management.Automation.SessionStateEntryVisibility. - Program PowerShell ma również właściwość o nazwie Widoczność.
4.5.11 Typ opisu filtru
Ten typ hermetyzuje stan filtru. Ma ten sam zestaw dostępnych elementów członkowskich co typ opisu funkcji (§4.5.10).
W programie PowerShell ten typ to System.Management.Automation.FilterInfo. Ma ten sam zestaw właściwości co System.Management.Automation.FunctionInfo (§4.5.11).
Typ opisu modułu 4.5.12
Ten typ hermetyzuje stan modułu. Ma on następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Opis | Właściwość wystąpienia (odczyt-zapis) | ciąg | Opis modułu (ustawiony przez manifest) |
| Typ modułu | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację | Typ modułu (manifest, skrypt lub plik binarny) |
| Nazwa | Właściwość wystąpienia (tylko do odczytu) | ciąg | Nazwa modułu |
| Path | Właściwość wystąpienia (tylko do odczytu) | ciąg | Ścieżka modułu |
W programie PowerShell ten typ to System.Management.Automation.PSModuleInfo. Typ to ModuleTypeSystem.Management.Automation.ModuleType.
Typ opisu obiektu niestandardowego 4.5.13
Ten typ hermetyzuje stan obiektu niestandardowego. Nie ma dostępnych członków.
W programie PowerShell ten typ to System.Management.Automation.PSCustomObject. Polecenia cmdlet Import-Module i New-Object mogą generować obiekt tego typu.
Typ opisu polecenia 4.5.14
Zmienna $PSCmdlet automatyczna jest obiektem reprezentującym wykonywane polecenie cmdlet lub funkcję. Typ tego obiektu jest zdefiniowany w implementacji; ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Nazwa parametru | Właściwość wystąpienia (tylko do odczytu) | ciąg | Nazwa bieżącego zestawu parametrów (zobacz ParameterSetName) |
| ShouldContinue | Metoda wystąpienia | Przeciążone /Bool |
Żąda potwierdzenia operacji od użytkownika. |
| ShouldProcess | Metoda wystąpienia | Przeciążone /Bool |
Żąda potwierdzenia od użytkownika przed wykonaniem operacji. |
W programie PowerShell ten typ to System.Management.Automation.PSScriptCmdlet.
4.5.15 Typ opisu rekordu błędu
Zmienna $Error automatyczna zawiera kolekcję rekordów błędów reprezentujących ostatnie błędy (§3.12). Mimo że typ tej kolekcji nie jest określony, obsługuje indeksowanie podrzędne w celu uzyskania dostępu do poszczególnych rekordów błędów.
W programie PowerShell typ kolekcji to System.Collections.ArrayList. Typ pojedynczego rekordu błędu w kolekcji to System.Management.Automation.ErrorRecord. Ten typ ma następujące właściwości publiczne:
- CategoryInfo — pobiera informacje o kategorii błędu.
- ErrorDetails — pobiera i ustawia bardziej szczegółowe informacje o błędzie, takie jak komunikat o błędzie zastępczy.
- Wyjątek — pobiera wyjątek skojarzony z tym rekordem błędu.
- FullyQualifiedErrorId — pobiera w pełni kwalifikowany identyfikator błędu dla tego rekordu błędu.
- InvocationInfo — pobiera informacje o poleceniu wywoływanym podczas wystąpienia błędu.
- PipelineIterationInfo — pobiera stan potoku podczas tworzenia tego rekordu błędu
- TargetObject — pobiera obiekt, który był przetwarzany podczas wystąpienia błędu.
4.5.16 Typ opisu modułu wyliczającego
Liczba zmiennych to moduły wyliczane dla kolekcji (§4). Zmienna $foreach automatyczna to moduł wyliczający utworzony dla dowolnej foreach instrukcji. Zmienna $input automatyczna to moduł wyliczający kolekcji dostarczonej do funkcji z potoku. Zmienna $switch automatyczna to moduł wyliczający utworzony dla dowolnej switch instrukcji.
Typ modułu wyliczającego jest zdefiniowany; ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Aktualny | Właściwość wystąpienia (tylko do odczytu) | obiekt | Pobiera bieżący element w kolekcji. Jeśli moduł wyliczający nie jest obecnie umieszczony w elemecie kolekcji, zachowanie jest zdefiniowane przez implementację. |
| MoveNext | Metoda wystąpienia | Brak/wartość logiczna | Przechodzi moduł wyliczający do następnego elementu kolekcji. Zwraca $true, jeśli moduł wyliczający został pomyślnie zaawansowany do następnego elementu; $false, jeśli moduł wyliczający przeszedł koniec kolekcji. |
W programie PowerShell te elementy członkowskie są zdefiniowane w interfejsie System.IEnumerator, który jest implementowany przez typy zidentyfikowane poniżej. Jeśli moduł wyliczający nie jest obecnie umieszczony w elemecie kolekcji, zgłaszany jest wyjątek typu InvalidOperationException . W przypadku $foreachprogramu ten typ to System.Array+SZArrayEnumerator. W przypadku $inputprogramu ten typ to System.Collections.ArrayList+ArrayListEnumeratorSimple. W przypadku $switchprogramu ten typ to System.Array+SZArrayEnumerator.
Typ opisu katalogu 4.5.17
Polecenie cmdlet New-Item może tworzyć elementy różnych rodzajów, w tym katalogi systemu plików. Typ obiektu opisu katalogu jest zdefiniowany; ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Atrybuty | Właściwość wystąpienia (odczyt-zapis) | Zdefiniowano implementację (§4.2.6.3) | Pobiera lub ustawia co najmniej jeden atrybut obiektu katalogu. |
| CzasUtworzenia | Właściwość wystąpienia (odczyt-zapis) | Zdefiniowano implementację (§4.5.19) | Pobiera i ustawia czas tworzenia obiektu katalogu. |
| Rozszerzenie | Właściwość wystąpienia (tylko do odczytu) | ciąg | Pobiera część rozszerzenia nazwy katalogu. |
| Pełne imię | Właściwość wystąpienia (tylko do odczytu) | ciąg | Pobiera pełną ścieżkę katalogu. |
| LastWriteTime | Właściwość wystąpienia (odczyt-zapis) | Zdefiniowano implementację (§4.5.19) | Pobiera i ustawia czas ostatniego zapisania katalogu. |
| Nazwa | Właściwość wystąpienia (tylko do odczytu) | ciąg | Pobiera nazwę katalogu. |
W programie PowerShell ten typ to System.IO.DirectoryInfo. Typ właściwości Atrybuty to System.IO.FileAttributes.
4.5.18 Typ opisu pliku
Polecenie cmdlet New-Item może tworzyć elementy różnych rodzajów, w tym pliki systemu plików. Typ obiektu opisu pliku jest zdefiniowany; ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Atrybuty | Właściwość wystąpienia (odczyt-zapis) | Zdefiniowano implementację (§4.2.6.3) | Pobiera lub ustawia co najmniej jeden atrybut obiektu pliku. |
| Basename | Właściwość wystąpienia (tylko do odczytu) | ciąg | Pobiera nazwę pliku z wyłączeniem rozszerzenia. |
| CzasUtworzenia | Właściwość wystąpienia (odczyt-zapis) | Zdefiniowano implementację (§4.5.19) | Pobiera i ustawia czas tworzenia obiektu pliku. |
| Rozszerzenie | Właściwość wystąpienia (tylko do odczytu) | ciąg | Pobiera część rozszerzenia nazwy pliku. |
| Pełne imię | Właściwość wystąpienia (tylko do odczytu) | ciąg | Pobiera pełną ścieżkę pliku. |
| LastWriteTime | Właściwość wystąpienia (odczyt-zapis) | Zdefiniowano implementację (§4.5.19) | Pobiera i ustawia czas ostatniego zapisania pliku. |
| Długość | Właściwość wystąpienia (tylko do odczytu) | długi | Pobiera rozmiar pliku w bajtach. |
| Nazwa | Właściwość wystąpienia (tylko do odczytu) | ciąg | Pobiera nazwę pliku. |
| Versioninfo | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację | Windows programu PowerShell: ten skryptWłaściwości zwraca plik System.Diagnostics.FileVersionInfo. |
W programie PowerShell ten typ to System.IO.FileInfo.
4.5.19 typ opisu Date-Time
Typ obiektu opisu daty i godziny jest zdefiniowany; ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Dzień | Właściwość wystąpienia (tylko do odczytu) | int | Pobiera składnik dnia miesiąca reprezentowanego przez to wystąpienie. |
| Godzina | Właściwość wystąpienia (tylko do odczytu) | int | Pobiera składnik godziny daty reprezentowanej przez to wystąpienie. |
| Minuta | Właściwość wystąpienia (tylko do odczytu) | int | Pobiera składnik minuty daty reprezentowanej przez to wystąpienie. |
| Miesiąc | Właściwość wystąpienia (tylko do odczytu) | int | Pobiera składnik miesiąca daty reprezentowanej przez to wystąpienie. |
| Sekunda | Właściwość wystąpienia (tylko do odczytu) | int | Pobiera składnik sekund daty reprezentowanej przez to wystąpienie. |
| Rok | Właściwość wystąpienia (tylko do odczytu) | int | Pobiera składnik roku daty reprezentowanej przez to wystąpienie. |
Obiekt tego typu można utworzyć za pomocą polecenia cmdlet Get-Date.
W programie PowerShell ten typ to System.DateTime.
4.5.20 typ opisu Group-Info
Typ obiektu opisu informacji o grupie jest zdefiniowany; ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Purpose |
|---|---|---|---|
| Liczba | Właściwość wystąpienia (tylko do odczytu) | int | Pobiera liczbę elementów w grupie. |
| Grupa | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Pobiera elementy grupy. |
| Nazwa | Właściwość wystąpienia (tylko do odczytu) | ciąg | Pobiera nazwę grupy. |
| Wartości | Właściwość wystąpienia (tylko do odczytu) | Kolekcja zdefiniowana przez implementację | Pobiera wartości elementów grupy. |
Obiekt tego typu można utworzyć za pomocą polecenia cmdlet Group-Object.
W programie PowerShell ten typ to Microsoft.PowerShell.Commands.GroupInfo.
4.5.21 Typ opisu ogólnego —Measure-Info
Typ obiektu opisu ogólnego miary jest zdefiniowany przez implementację; ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Średnia | Właściwość wystąpienia (tylko do odczytu) | podwójny | Pobiera średnią wartości mierzonych właściwości. |
| Liczba | Właściwość wystąpienia (tylko do odczytu) | int | Pobiera liczbę obiektów z określonymi właściwościami. |
| Maximum | Właściwość wystąpienia (tylko do odczytu) | podwójny | Pobiera maksymalną wartość określonych właściwości. |
| Minimalna wartość | Właściwość wystąpienia (tylko do odczytu) | podwójny | Pobiera minimalną wartość określonych właściwości. |
| Majątek | Właściwość wystąpienia (tylko do odczytu) | ciąg | Pobiera właściwość do pomiaru. |
| Suma | Właściwość wystąpienia (tylko do odczytu) | podwójny | Pobiera sumę wartości określonych właściwości. |
Obiekt tego typu można utworzyć za pomocą polecenia cmdlet Measure-Object.
W programie PowerShell ten typ to Microsoft.PowerShell.Commands.GenericMeasureInfo.
4.5.22 Tekst — typ opisuMeasure-Info
Typ obiektu opisu informacji tekstowych jest zdefiniowany; ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Znaki | Właściwość wystąpienia (tylko do odczytu) | int | Pobiera liczbę znaków w obiekcie docelowym. |
| Wiersze | Właściwość wystąpienia (tylko do odczytu) | int | Pobiera liczbę wierszy w obiekcie docelowym. |
| Majątek | Właściwość wystąpienia (tylko do odczytu) | ciąg | Pobiera właściwość do pomiaru. |
| Słowa | Właściwość wystąpienia (tylko do odczytu) | int | Pobiera liczbę wyrazów w obiekcie docelowym. |
Obiekt tego typu można utworzyć za pomocą polecenia cmdlet Measure-Object.
W programie PowerShell ten typ to Microsoft.PowerShell.Commands.TextMeasureInfo.
4.5.23 Typ poświadczeń
Następnie można użyć obiektu poświadczeń w różnych operacjach zabezpieczeń. Typ obiektu poświadczeń jest zdefiniowany; ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Purpose |
|---|---|---|---|
| Hasło | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację | Pobiera hasło. |
| Nazwa użytkownika | Właściwość wystąpienia (tylko do odczytu) | ciąg | Pobiera nazwę użytkownika. |
Obiekt tego typu można utworzyć za pomocą polecenia cmdlet Get-Credential.
W programie PowerShell ten typ to System.Management.Automation.PSCredential.
Typ projektowania metody 4.5.24
Typ projektowania metody jest zdefiniowany; ma następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Invoke | Metoda wystąpienia | liczba i typ obiektu/zmiennej | Przyjmuje zmienną liczbę argumentów, a pośrednio wywołuje metodę, do której odwołuje się projektant metody nadrzędnej, przekazując argumenty. |
Obiekt tego typu może zostać utworzony przez wyrażenie-wywołania (§7.1.3).
W programie PowerShell ten typ to System.Management.Automation.PSMethod.
4.5.25 Typ definicji elementu członkowskiego
Ten typ hermetyzuje definicję elementu członkowskiego. Ma on następujące dostępne elementy członkowskie:
| Członek | Rodzaj elementu członkowskiego | Typ | Przeznaczenie |
|---|---|---|---|
| Definicja | Właściwość wystąpienia (tylko do odczytu) | ciąg | Pobiera definicję elementu członkowskiego. |
| Typ członka | Właściwość wystąpienia (tylko do odczytu) | Zdefiniowano implementację | Pobiera typ programu PowerShell elementu członkowskiego. |
| Nazwa | Właściwość wystąpienia (tylko do odczytu) | ciąg | Pobiera nazwę elementu członkowskiego. |
| NazwaTypu | Właściwość wystąpienia (tylko do odczytu) | ciąg | Pobiera nazwę typu elementu członkowskiego. |
W programie PowerShell ten typ to Microsoft.PowerShell.Commands.MemberDefinition.
4.6 Rozszerzenie typu i adaptacja
Implementacja programu PowerShell obejmuje rodzinę typów podstawowych (które są udokumentowane w tym rozdziale), z których każda zawiera własny zestaw elementów członkowskich podstawowych. Te elementy członkowskie mogą być metodami lub właściwościami, a mogą być elementami członkowskimi wystąpienia lub statycznymi elementami członkowskimi. Na przykład podstawowe elementy członkowskie ciągu typu (§4.3.1) to właściwość wystąpienia Length i metody wystąpienia ToLower i ToUpper.
Po utworzeniu obiektu zawiera on wszystkie właściwości wystąpienia typu tego obiektu, a metody wystąpienia tego typu mogą być wywoływane dla tego obiektu. Obiekt można dostosować za pośrednictwem dodawania członków wystąpień w czasie wykonywania. Wynik jest nazywany obiektem niestandardowym. Wszyscy członkowie dodani do wystąpienia istnieją tylko przez okres istnienia tego wystąpienia; nie ma to wpływu na inne wystąpienia tego samego typu rdzenia.
Podstawowy zestaw elementów członkowskich typu można rozszerzyć przez dodanie następujących rodzajów elementów członkowskich:
- dostosowane elementy członkowskie, za pośrednictwem systemu rozszerzonego (ETS), z których większość szczegółów nie jest określona.
- rozszerzonych członków za pomocą polecenia cmdlet Add-Member.
W programie PowerShell można również dodawać rozszerzone elementy członkowskie za pośrednictwem types.ps1xml plików. Zaadaptowane i rozszerzone elementy członkowskie są łącznie nazywane elementami syntetycznych.
System ETS dodaje następujące elementy członkowskie do wszystkich obiektów programu PowerShell: psbase, psadapted, psextended i pstypenames. Aby uzyskać więcej informacji na temat tych elementów członkowskich, zobacz parametry Force and View w poleceniu cmdlet Get-Member .
Członek wystąpienia może ukryć rozszerzony i/lub dostosowany element członkowski o tej samej nazwie, a rozszerzony element członkowski może ukryć dostosowany element członkowski. W takich przypadkach zestawy składowych psadapted i psextended mogą służyć do uzyskiwania dostępu do tych ukrytych elementów członkowskich.
Jeśli element types.ps1xml członkowski o nazwie Obsługuje, zapewnia dostęp tylko do tego elementu członkowskiego, obj.psextended a nie do elementu członkowskiego dodanego za pośrednictwem .Add-Member
Istnieją trzy sposoby tworzenia obiektu niestandardowego o nowym elemencie M:
Tego podejścia można użyć do dodania co najmniej jednego elementu członkowskiego NoteProperty.
$x = New-Object PSObject -Property @{M = 123}Tego podejścia można użyć do dodawania elementów członkowskich NoteProperty lub ScriptMethod.
$x = New-Module -AsCustomObject {$M = 123 ; Export-ModuleMember --Variable M}Takie podejście może służyć do dodawania dowolnego rodzaju elementu członkowskiego.
$x = New-Object PSObject Add-Member -InputObject $x -Name M -MemberType NoteProperty -Value 123
PSObject jest podstawowym typem wszystkich typów programu PowerShell.