4. Typy

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 float używa 32-bitowej reprezentacji jednoprecyzyjnej IEEE.
  • Typ double uż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 int wartoś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)
Copy(source, destination, long count)
Copy(source, sourceIndex, destination, destinationIndex, int count)
Copy(source, sourceIndex, destination, destinationIndex, long 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.

  • CommandType ma typ System.Management.Automation.CommandTypes.
  • Options ma typ System.Management.Automation.ScopedItemOptions.
  • OutputType ma typ System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.PSTypeName,System.Management.Automation]].
  • Parameters ma typ System.Collections.Generic.Dictionary``2[[System.String,mscorlib],[System.Management.Automation.ParameterMetadata,System.Management.Automation]].
  • ParameterSets ma typ System.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:

  1. Tego podejścia można użyć do dodania co najmniej jednego elementu członkowskiego NoteProperty.

    $x = New-Object PSObject -Property @{M = 123}
    
  2. 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}
    
  3. 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.