Freigeben über


4. Typen

Redaktionelle Notiz

Von Bedeutung

Die Windows PowerShell Language Specification 3.0 wurde im Dezember 2012 veröffentlicht und basiert auf Windows PowerShell 3.0. Diese Spezifikation spiegelt nicht den aktuellen Status von PowerShell wider. Es ist nicht geplant, diese Dokumentation zu aktualisieren, um den aktuellen Zustand widerzuspiegeln. Diese Dokumentation wird hier zur historischen Referenz vorgestellt.

Das Spezifikationsdokument steht als Microsoft Word-Dokument im Microsoft Download Center unter: https://www.microsoft.com/download/details.aspx?id=36389 zur Verfügung. Dieses Word-Dokument wurde für die Darstellung hier auf Microsoft Learn umgewandelt. Während der Konvertierung wurden einige redaktionelle Änderungen vorgenommen, um die Formatierung für die Docs-Plattform zu berücksichtigen. Einige Tippfehler und kleinere Fehler wurden korrigiert.

In PowerShell weist jeder Wert einen Typ auf, und Typen werden in eine von zwei Hauptkategorien unterteilt: Werttypen und Referenztypen. Berücksichtigen Sie den Typ int, der typisch für Werttypen ist. Ein Typwert int ist vollständig eigenständig. Alle Bits, die erforderlich sind, um diesen Wert darzustellen, werden in diesem Wert gespeichert, und jedes Bitmuster in diesem Wert stellt einen gültigen Wert für seinen Typ dar. Betrachten Sie nun den Arraytyp int[], der typisch für Referenztypen ist. Ein so genannter Wert eines Arraytyps kann entweder einen Verweis auf ein Objekt enthalten, das tatsächlich die Arrayelemente enthält, oder den Nullverweis , dessen Wert lautet $null. Der wichtige Unterschied zwischen den beiden Typkategorien wird am besten durch die Unterschiede in der Semantik bei der Zuordnung veranschaulicht. Beispiel:

$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

Wie wir sehen, umfasst die Zuordnung eines Bezugstypwerts eine flache Kopie; d. h. eine Kopie des Verweises auf das Objekt anstelle des tatsächlichen Werts. Im Gegensatz dazu erfordert eine tiefgehende Kopie auch eine Kopie des Objekts.

Ein numerischer Typ ist ein Typ, der die Darstellung von ganzzahligen oder Bruchwerten zulässt und arithmetische Vorgänge für diese Werte unterstützt. Der Satz numerischer Typen umfasst die Ganzzahl (§4.2.3) und die reelle Zahl (§4.2.4), enthält jedoch keinen Bool (§4.2.1) oder Zeichen (§4.2.2).2). Eine Implementierung kann andere numerische Typen (z. B. signiertes Byte, nicht signierte ganze Zahl und ganze Zahlen anderer Größen) bereitstellen.

Eine Auflistung ist eine Gruppe von mindestens einem verwandten Element, die nicht denselben Typ aufweisen muss. Beispiele für Sammlungstypen sind Arrays, Stapel, Warteschlangen, Listen und Hashtabellen. Ein Programm kann die Elemente in einer Auflistung aufzählen (oder durchlaufen), um jeweils zugriff auf jedes Element zu erhalten. Allgemeine Möglichkeiten hierfür sind die foreach Anweisung (§8.4.4) und das ForEach-Object-Cmdlet . Der Typ eines Objekts, das einen Enumerator darstellt, wird in §4.5.16 beschrieben.

In diesem Kapitel gibt es Tabellen, in denen die barrierefreien Elemente für einen bestimmten Typ aufgeführt werden. Für Methoden wird der Type mit dem folgenden Formular geschrieben: returnType/argumentTypeList. Wenn die Argumenttypliste zu lang ist, damit sie in diese Spalte passt, wird sie stattdessen in der Spalte "Zweck" angezeigt.

Andere ganzzahlige Typen sind SByte, Int16, , UInt16UInt32und UInt64, alle im Namespacesystem.

Viele Auflistungsklassen werden als Teil der Namespaces "System.Collections " oder "System.Collections.Generic " definiert. Die meisten Sammlungsklassen implementieren die Schnittstellen ICollection, IComparer, , IEnumerable, IListIDictionaryund IDictionaryEnumerator deren generische Entsprechungen.

Sie können auch Kurznamen für einige Typen verwenden. Weitere Informationen finden Sie unter about_Type_Accelerators.

4.1 Sondertypen

4.1.1 Der ungültige Typ

Dieser Typ kann nicht instanziiert werden. Sie bietet eine Möglichkeit, einen Wert explizit mithilfe des Umwandlungsoperators (§7.2.9) zu verwerfen.

4.1.2 Der Nulltyp

Der Nulltyp verfügt über eine Instanz, die automatische Variable $null (§2.3.2.2), die auch als Nullwert bezeichnet wird. Dieser Wert stellt ein Mittel zum Ausdrücken von "Nichtsheit" in Bezugskontexten bereit. Die Merkmale dieses Typs sind nicht angegeben.

4.1.3 Der Objekttyp

Jeder Typ in PowerShell mit Ausnahme des Nulltyps (§4.1.2) wird direkt oder indirekt vom Typobjekt abgeleitet, sodass objekt der ultimative Basistyp aller Nicht-Null-Typen ist. Eine Variable, die auf das Typobjekt beschränkt ist (§5.3), ist überhaupt nicht eingeschränkt, da sie einen Wert eines beliebigen Typs enthalten kann.

4.2 Werttypen

4.2.1 Boolescher Wert

Der boolesche Typ ist bool. Es gibt nur zwei Werte dieses Typs, False und True, dargestellt durch die automatischen Variablen $false bzw$true. (§2.3.2.2).

In PowerShell bool ordnet die Zuordnung zu System.Boolean.

4.2.2 Zeichen

Ein Zeichenwert weist Typzeichen auf, die einen UTF-16-codierten 16-Bit-Unicode-Codepunkt speichern können.

Das Typzeichen weist die folgenden barrierefreien Elemente auf:

Mitglied Mitglied kind Typ Zweck
Maximalwert Statische Eigenschaft (schreibgeschützt) verkohlen Der größte mögliche Wert des Typzeichens
Mindestwert Statische Eigenschaft (schreibgeschützt) verkohlen Der kleinste mögliche Wert des Typzeichens
IsControl Static-Methode bool/char Testet, ob es sich bei dem Zeichen um ein Steuerelementzeichen handelt
IsDigit Static-Methode bool/char Überprüft, ob das Zeichen eine Dezimalziffer ist.
IsLetter Static-Methode bool/char Testet, ob das Zeichen ein alphabetischer Buchstabe ist
IsLetterOrDigit Static-Methode bool/char Überprüft, ob das Zeichen eine Dezimalziffer oder ein alphabetischer Buchstabe ist.
IsLower Static-Methode bool/char Testet, ob das Zeichen ein alphabetischer Kleinbuchstabe ist
IsPunctuation Static-Methode bool/char Testet, ob das Zeichen ein Interpunktionszeichen ist.
IsUpper Static-Methode bool/char Testet, ob das Zeichen ein alphabetischer Großbuchstabe ist
IsWhiteSpace Static-Methode bool/char Testet, ob das Zeichen ein Leerzeichen ist.
ToLower Static-Methode char/string Konvertiert das Zeichen in Kleinbuchstaben.
ToUpper Static-Methode char/string Konvertiert das Zeichen in Großbuchstaben.

Windows PowerShell: Zeichen ist System.Char zugeordnet.

4.2.3 Ganze Zahl

Es gibt zwei signierte ganzzahlige Typen, die beide die Darstellung von zwei Ergänzungen für negative Werte verwenden:

  • Type int, which uses 32 bits giving it a range of -2147483648 to +2147483647, inclusive.
  • Type long, which uses 64 bits giving it a range of -9223372036854775808 to +9223372036854775807, inclusive.

Typ int verfügt über die folgenden barrierefreien Member:

Mitglied Mitglied kind Typ Zweck
Maximalwert Statische Eigenschaft (schreibgeschützt) INT Der größte mögliche Wert des Typs int
Mindestwert Statische Eigenschaft (schreibgeschützt) INT Der kleinste mögliche Wert des Typs "int"

Typ hat lange die folgenden barrierefreien Member:

Mitglied Mitglied kind Typ Zweck
Maximalwert Statische Eigenschaft (schreibgeschützt) long Der größte mögliche Wert vom Typ Long
Mindestwert Statische Eigenschaft (schreibgeschützt) long Der kleinste mögliche Wert vom Typ Long

Es gibt einen ganzzahligen Ganzzahltyp ohne Vorzeichen:

  • Type byte, which uses 8 bits giving it a range of 0 to 255, inclusive.

Der Typ byte verfügt über die folgenden barrierefreien Member:

Mitglied Mitglied kind Typ Zweck
Maximalwert Statische Eigenschaft (schreibgeschützt) byte Der größte mögliche Wert des Typbytes
Mindestwert Statische Eigenschaft (schreibgeschützt) byte Der kleinste mögliche Wert des Typbytes

In PowerShell, byte, intund long map to System.Byte, System.Int32, , und System.Int64, bzw. .

4.2.4 Reale Zahl

4.2.4.1 float und double

Es gibt zwei echte (oder Gleitkomma)-Typen:

  • Der Typ float verwendet die 32-Bit-IEEE-Einzelgenauigkeitsdarstellung.
  • Typ double verwendet die 64-Bit-IEEE-Doppelpräzisionsdarstellung.

Ein dritter Typname ist singleein Synonym für typ float; float wird in dieser Spezifikation verwendet.

Obwohl die Größe und Darstellung der Typen float und double durch diese Spezifikation definiert sind, kann eine Implementierung eine erweiterte Genauigkeit für Zwischenergebnisse verwenden.

Der Typ "float" verfügt über die folgenden elemente, auf die zugegriffen werden kann:

Mitglied Mitglied kind Typ Zweck
Maximalwert Statische Eigenschaft (schreibgeschützt) Schweben Der größte mögliche Wert des Typs float
Mindestwert Statische Eigenschaft (schreibgeschützt) Schweben Der kleinste mögliche Wert des Typs Float
NaN Statische Eigenschaft (schreibgeschützt) Schweben Der Konstantenwert "Not-a-Number"
Negative Unendlichkeit Statische Eigenschaft (schreibgeschützt) Schweben Der konstante Wert negative Unendlichkeit
PositiveInfinity Statische Eigenschaft (schreibgeschützt) Schweben Der konstante Wert positive Unendlichkeit

Typ double hat die folgenden barrierefreien Member:

Mitglied Mitglied kind Typ Zweck
Maximalwert Statische Eigenschaft (schreibgeschützt) doppelt Der größte mögliche Wert des Typs Double
Mindestwert Statische Eigenschaft (schreibgeschützt) doppelt Der kleinste mögliche Wert des Typs Double
NaN Statische Eigenschaft (schreibgeschützt) doppelt Der Konstantenwert "Not-a-Number"
Negative Unendlichkeit Statische Eigenschaft (schreibgeschützt) doppelt Der konstante Wert negative Unendlichkeit
PositiveInfinity Statische Eigenschaft (schreibgeschützt) doppelt Der konstante Wert positive Unendlichkeit

In PowerShell float und double zuordnen bzwSystem.Double. zuordnenSystem.Single.

4.2.4.2 Dezimalzahl

Typdezimal verwendet eine 128-Bit-Darstellung. Mindestens muss eine Skalierung so unterstützt werden, dass 0 <= s<= mindestens 28 und ein Wertbereich -79228162514264337593543950335, um 79228162514264337593543950335. Die tatsächliche Darstellung des Dezimaltrennzeichens wird definiert.

Typ dezimal weist die folgenden barrierefreien Elemente auf:

Mitglied Mitglied kind Typ Zweck
Maximalwert Statische Eigenschaft (schreibgeschützt) Decimal Der größte mögliche Wert vom Typ "Dezimalwert"
Mindestwert Statische Eigenschaft (schreibgeschützt) Decimal Der kleinste mögliche Wert vom Typ "Dezimalwert"

Hinweis

Dezimal reale Zahlen weisen ein Merkmal auf, das als Skalierung bezeichnet wird, was die Anzahl der Ziffern rechts neben dem Dezimalkomma darstellt. Beispielsweise weist der Wert 2,340 eine Skala von 3 auf, wobei nachfolgende Nullen signifikant sind. Wenn zwei rezimale Zahlen addiert oder subtrahiert werden, ist die Skala des Ergebnisses die größer als die beiden Skalierungen. Beispielsweise beträgt 1,0 + 2.000 3.000, während 5,0 - 2,00 3,00 beträgt. Wenn zwei dezimale reale Zahlen multipliziert werden, ist die Skala des Ergebnisses die Summe der beiden Skalierungen. Beispiel: 1,0 * 2.000 ist 2.0000. Wenn zwei dezimale reale Zahlen dividiert werden, ist die Skala des Ergebnisses die Skalierung des ersten Werts, der kleiner als die Zweite ist. Beispiel: 4.00000/2.000 ist 2,00. Eine Skalierung kann jedoch nicht kleiner sein als die, die erforderlich ist, um das richtige Ergebnis beizubehalten. Beispielsweise sind 3.000/2.000, 3.00/2.000, 3.0/2.000 und 3/2 alle 1,5.

In PowerShell decimal ordnet die Zuordnung zu System.Decimal. Die Dezimaldarstellung lautet wie folgt:

  • Wenn sie als Array mit vier int Werten betrachtet wird, enthält sie die folgenden Elemente:
    • Index 0 (Bits 0-31) enthält die 32 Bit niedriger Reihenfolge des Dezimalkoeffizienten.
    • Index 1 (Bit 32-63) enthält die mittleren 32 Bits des Dezimalkoeffizienten.
    • Index 2 (Bits 64-95) enthält die Hochreihenfolge 32 Bit des Dezimalkoeffizienten.
    • Index 3 (Bits 96-127) enthält das Zeichenbit und die Skalierung wie folgt:
      • bits 0--15 are zero
      • bits 16-23 contains the scale as a value 0--28
      • Bits 24-30 sind null
      • Bit 31 ist das Vorzeichen (0 für positiv, 1 für negativ)

4.2.5 Der Schaltertyp

Dieser Typ wird verwendet, um den Typ eines Parameters in einem Befehl (§8.10.5) einzuschränken. Wenn ein Argument mit dem entsprechenden Parameternamen vorhanden ist, werden die Parametertests $true; andernfalls wird getestet $false.

In PowerShell switch ordnet die Zuordnung zu System.Management.Automation.SwitchParameter.

4.2.6 Enumerationstypen

Ein Enumerationstyp ist ein Typ, der einen Satz benannter Konstanten definiert, der alle möglichen Werte darstellt, die einem Objekt dieses Enumerationstyps zugewiesen werden können. In einigen Fällen sind die Wertesätze so, dass jeweils nur ein Wert dargestellt werden kann. In anderen Fällen sind die Wertesätze unterschiedliche Potenzen von zwei und mithilfe des -bor-Operators (§7.8.5) können mehrere Werte im selben Objekt codiert werden.

Die PowerShell-Umgebung stellt eine Reihe von Enumerationstypen bereit, wie in den folgenden Abschnitten beschrieben.

4.2.6.1 Action-Preference Typ

Dieser implementierungsdefinierte Typ weist die folgenden sich gegenseitig ausschließenden barrierefreien Member auf:

Mitglied Mitglied kind Zweck
Fortfahren Enumerationskonstante Die PowerShell-Laufzeit wird weiterhin verarbeitet und benachrichtigt den Benutzer darüber, dass eine Aktion aufgetreten ist.
Inquire Enumerationskonstante Die PowerShell-Laufzeit beendet die Verarbeitung und fragt den Benutzer, wie es fortgesetzt werden soll.
SilentlyContinue (leise fortfahren) Enumerationskonstante Die PowerShell-Laufzeit wird weiterhin verarbeitet, ohne den Benutzer darüber zu informieren, dass eine Aktion aufgetreten ist.
Stopp! Enumerationskonstante Die PowerShell-Laufzeit beendet die Verarbeitung, wenn eine Aktion auftritt.

In PowerShell ist System.Management.Automation.ActionPreferencedieser Typ .

4.2.6.2 Confirm-Impact Typ

Dieser implementierungsdefinierte Typ weist die folgenden sich gegenseitig ausschließenden barrierefreien Member auf:

Mitglied Mitglied kind Zweck
Hoch Enumerationskonstante Die ausgeführte Aktion besteht aus einem hohen Risiko, dass Daten verloren gehen, z. B. das Neuformatieren einer Festplatte.
Niedrig Enumerationskonstante Die ausgeführte Aktion besteht aus einem geringen Risiko, dass Daten verloren gehen.
Mittelstufe Enumerationskonstante Die ausgeführte Aktion besteht aus einem mittleren Risiko, dass Daten verloren gehen.
Nichts Enumerationskonstante Bestätigen Sie keine Aktionen (alle Bestätigungsanforderungen unterdrücken).

In PowerShell ist System.Management.Automation.ConfirmImpactdieser Typ .

4.2.6.3 File-Attributes Typ

Dieser implementierungsdefinierte Typ verfügt über die folgenden barrierefreien Member, die kombiniert werden können:

Mitglied Mitglied kind Zweck
Archivieren Enumerationskonstante Der Archivstatus der Datei. Anwendungen verwenden dieses Attribut, um Dateien für die Sicherung oder Entfernung zu markieren.
Komprimiert Enumerationskonstante Die Datei wird komprimiert.
Gerät Reserviert für zukünftige Verwendung.
Verzeichnis Enumerationskonstante Die Datei ist ein Verzeichnis.
Encrypted Enumerationskonstante Die Datei oder das Verzeichnis ist verschlüsselt. Bei einer Datei bedeutet dies, dass alle Daten in der Datei verschlüsselt sind. Für ein Verzeichnis bedeutet dies, dass die Verschlüsselung die Standardeinstellung für neu erstellte Dateien und Verzeichnisse ist.
Versteckt Enumerationskonstante Die Datei ist ausgeblendet und ist daher nicht in einer normalen Verzeichnisauflistung enthalten.
Normal Enumerationskonstante Die Datei ist normal und hat keine anderen Attribute festgelegt. Dieses Attribut ist nur gültig, wenn es allein verwendet wird.
NotContentIndexed Enumerationskonstante Die Datei wird nicht vom Inhaltsindizierungsdienst des Betriebssystems indiziert.
Offline Enumerationskonstante Die Datei ist offline. Die Daten der Datei sind nicht sofort verfügbar.
ReadOnly Enumerationskonstante Die Datei ist schreibgeschützt.
AnalysePoint Enumerationskonstante Die Datei enthält einen Analysepunkt, bei dem es sich um einen Block benutzerdefinierter Daten handelt, die einer Datei oder einem Verzeichnis zugeordnet sind.
SparseFile Enumerationskonstante Die Datei ist eine sparse Datei. Geringe Dateien sind in der Regel große Dateien, deren Daten hauptsächlich Nullen sind.
System Enumerationskonstante Die Datei ist eine Systemdatei. Die Datei ist Teil des Betriebssystems oder wird ausschließlich vom Betriebssystem verwendet.
Vorläufig Enumerationskonstante Die Datei ist temporär. Dateisysteme versuchen, alle Daten im Arbeitsspeicher zu speichern, um schnelleren Zugriff zu ermöglichen, anstatt die Daten wieder in den Massenspeicher zu leeren. Eine temporäre Datei sollte von der Anwendung gelöscht werden, sobald sie nicht mehr benötigt wird.

In PowerShell ist dieser Typ "System.IO.FileAttributes" mit attribut "FlagsAttribute".

4.2.6.4 Normal-Expression-Option Typ

Dieser implementierungsdefinierte Typ verfügt über die folgenden barrierefreien Member, die kombiniert werden können:

Mitglied Mitglied kind Zweck
Ignorieren Sie den Fall Enumerationskonstante Gibt an, dass bei dem Abgleich die Groß-/Kleinschreibung nicht beachtet wird.
Nichts Enumerationskonstante Gibt an, dass keine Optionen festgelegt sind.

Eine Implementierung kann andere Werte bereitstellen.

In PowerShell ist System.Text.RegularExpressions.RegexOptions dieser Typ mit Attribut FlagsAttribute. Die folgenden zusätzlichen Werte sind definiert: Compiled, , CultureInvariant, ECMAScript, ExplicitCapture, IgnorePatternWhitespace, Multiline, . RightToLeftSingleline

4.3 Referenztypen

4.3.1 Zeichenfolgen

Ein Zeichenfolgenwert hat Typzeichenfolge und ist eine unveränderliche Abfolge von Null oder mehr Zeichen vom Typ char, die jeweils einen UTF-16-codierten 16-Bit-Unicode-Codepunkt enthalten.

Typzeichenfolge hat die folgenden elemente, auf die zugegriffen werden kann:

Mitglied Mitglied kind Typ Zweck
Länge Instance-Eigenschaft int (schreibgeschützt) Ruft die Anzahl der Zeichen in der Zeichenfolge ab.
ToLower Instance-Methode Schnur Erstellt eine neue Zeichenfolge, die das Äquivalent in Kleinbuchstaben enthält.
ToUpper Instance-Methode Schnur Erstellt eine neue Zeichenfolge, die die Großbuchstabenentsprechung enthält.

In PowerShell string ordnet die Zuordnung zu System.String.

4.3.2 Arrays

Alle Arraytypen werden vom Typ arrayabgeleitet. Dieser Typ verfügt über die folgenden barrierefreien Member:

Mitglied Mitglied kind Typ Zweck
Länge Instance-Eigenschaft (schreibgeschützt) INT Anzahl der Elemente im Array
Rang Instance-Eigenschaft (schreibgeschützt) INT Anzahl der Dimensionen im Array
Kopieren Static-Methode void/see Purpose column

Kopiert einen Bereich von Elementen aus einem Array in ein anderes. Es gibt vier Versionen, wobei die Quelle das Quellarray ist, ziel das Zielarray ist, die Anzahl der zu kopierenden Elemente ist, und sourceIndex und destinationIndex sind die Anfangsspeicherorte in ihren jeweiligen Arrays:

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 Instance-Methode (schreibgeschützt) int/none

Anzahl der Elemente in einer bestimmten Dimension

GetLength(int dimension)

Weitere Informationen zu Arrays finden Sie unter §9.

In PowerShell array ordnet die Zuordnung zu System.Array.

4.3.3 Hashtables

Typhashtable verfügt über die folgenden barrierefreien Elemente:

Mitglied Mitglied kind Typ Zweck
Anzahl Instance-Eigenschaft INT Ruft die Anzahl der Schlüssel-Wert-Paare in der Hashtable ab.
Schlüssel Instance-Eigenschaft Implementierungsdefiniert Ruft eine Auflistung aller Schlüssel ab.
Werte Instance-Eigenschaft Implementierungsdefiniert Ruft eine Auflistung aller Werte ab.
Entfernen Instance-Methode void/none Entfernt den angegebenen Schlüssel/Wert.

Weitere Informationen zu Hashtables finden Sie unter §10.

In PowerShell Hashtable ordnet die Zuordnung zu System.Collections.Hashtable. Hashtable Elemente werden in einem Objekt vom Typ DictionaryEntrygespeichert, und die auflistungen, die von Keys und Values zurückgegeben werden, weisen Typ ICollectionauf.

4.3.4 Der XML-Typ

Typ-XML implementiert das W3C Document Object Model (DOM) Level 1 Core und die Core DOM Level 2. Das DOM ist eine Cachestrukturdarstellung eines XML-Dokuments und ermöglicht die Navigation und Bearbeitung dieses Dokuments. Dieser Typ unterstützt den tiefgestellten Operator [] (§7.1.4.4).

In PowerShell xml ordnet die Zuordnung zu System.Xml.XmlDocument.

4.3.5 Der regex-Typ

Der Typ regex stellt Maschinen zur Unterstützung der Verarbeitung regulärer Ausdrücke bereit. Sie wird verwendet, um den Typ eines Parameters (§5.3) einzuschränken, dessen entsprechendes Argument einen regulären Ausdruck enthalten kann.

In PowerShell regex ordnet die Zuordnung zu System.Text.RegularExpressions.Regex.

4.3.6 Der Bezugstyp

Normalerweise werden Argumente nach Wert an Befehle übergeben. Im Fall eines Arguments, das einen Werttyp aufweist, wird eine Kopie des Werts übergeben. Im Fall eines Arguments, das einen Verweistyp aufweist, wird eine Kopie des Verweises übergeben.

Typreferenz stellt Maschinen bereit, damit Argumente nach Verweis an Befehle übergeben werden können, sodass die Befehle den Wert des Arguments ändern können. Typ ref hat die folgenden barrierefreien Member:

Mitglied Mitglied kind Typ Zweck
Wert Instanzeigenschaft (Lese-/Schreibzugriff) Der Typ des Werts, auf den verwiesen wird. Ruft ab/legt den Wert fest, auf den verwiesen wird.

Betrachten Sie die folgende Funktionsdefinition und den folgenden Aufruf:

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

Berücksichtigen Sie den Fall, in dem $number typgeschränkt ist:

[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

Wie gezeigt, müssen sowohl das Argument als auch der entsprechende Parameter deklariert refwerden.

In PowerShell ref ordnet die Zuordnung zu System.Management.Automation.PSReference.

4.3.7 Der Scriptblock-Typ

Der Typ scriptblock stellt einen vorkompilierten Skripttextblock (§7.1.8) dar, der als einzelne Einheit verwendet werden kann. Sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Attribute Instanzeigenschaft (schreibgeschützt) Sammlung von Attributen Ruft die Attribute des Skriptblocks ab.
Datei Instanzeigenschaft (schreibgeschützt) Schnur Ruft den Namen der Datei ab, in der der Skriptblock definiert ist.
Modul Instanzeigenschaft (schreibgeschützt) Implementierung definiert ([§4.5.12][§4.5.12]) Ruft Informationen zum Modul ab, in dem der Skriptblock definiert ist.
GetNewClosure Instanzmethode Skriptblock
/nichts
Ruft einen Skriptblock ab, der an ein Modul gebunden ist. Alle lokalen Variablen, die sich im Kontext des Aufrufers befinden, werden in das Modul kopiert.
Aufrufen Instanzmethode Auflistung des Objekts/Objekts[] Ruft den Skriptblock mit den angegebenen Argumenten auf und gibt die Ergebnisse zurück.
InvokeReturnAsIs Instanzmethode object/object[] Ruft den Skriptblock mit den angegebenen Argumenten auf und gibt alle generierten Objekte zurück.
Erstellen Static-Methode Skriptblock
/Schnur
Erstellt ein neues scriptblock -Objekt, das das angegebene Skript enthält.

In PowerShell scriptblock ordnet die Zuordnung zu System.Management.Automation.ScriptBlock. Invoke gibt eine Auflistung von PSObject.

4.3.8 Der mathematische Typ

Der Typ math bietet Zugriff auf einige Konstanten und Methoden, die bei mathematischen Berechnungen nützlich sind. Sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
E Statische Eigenschaft (schreibgeschützt) doppelt Natürliche logarithmische Basis
PI Statische Eigenschaft (schreibgeschützt) doppelt Verhältnis des Umfangs eines Kreises zu seinem Durchmesser
Bauchmuskeln Static-Methode numerisch/numerisch Absoluter Wert (der Rückgabetyp entspricht dem Typ des übergebenen Arguments)
Acos Static-Methode double / double Winkel, dessen Kosinus die angegebene Zahl ist
Asin Static-Methode double / double Winkel, dessen Sinus die angegebene Zahl ist
Atan Static-Methode double / double Winkel, dessen Tangens die angegebene Zahl ist
Atan2 Static-Methode double / double y, double x Winkel, dessen Tangens der Quotient von zwei angegebenen Zahlen x und y ist
Decke Static-Methode

Dezimal/Dezimalzahl

double / double

kleinste ganze Zahl größer oder gleich der angegebenen Zahl
Cos Static-Methode double / double Kosinus des angegebenen Winkels
Schlagstock Static-Methode double / double Hyperbolischer Kosinus des angegebenen Winkels
Exp Static-Methode double / double e wird an die angegebene Potenz ausgelöst
Etage Static-Methode

Dezimal/Dezimalzahl

double / double

Größte ganze Zahl kleiner oder gleich der angegebenen Zahl
Protokoll Static-Methode

Double / Double Number

double / double number, double base

Logarithmus der Zahl mit Basis e oder Basisbasis
Log10 Static-Methode double / double Logarithmus der Basis 10 einer angegebenen Zahl
Max. Static-Methode numerisch/numerisch Größer als zwei angegebene Zahlen (der Rückgabetyp entspricht dem Typ der übergebenen Argumente)
Min Static-Methode numerisch/numerisch, numerisch Kleiner von zwei angegebenen Zahlen (der Rückgabetyp entspricht dem Typ der übergebenen Argumente)
Peng Static-Methode double / double x, double y Eine angegebene Zahl x, die in die angegebene Potenz y ausgelöst wird
Sünde Static-Methode double / double Sinus des angegebenen Winkels
Sinh Static-Methode double / double Hyperbolischer Sinus des angegebenen Winkels
Sqrt Static-Methode double / double Quadratwurzel einer angegebenen Zahl
Bräune Static-Methode double / double Tangens des angegebenen Winkels
Tanh Static-Methode double / double Hyperbolischer Tangens des angegebenen Winkels

In PowerShell Math ordnet die Zuordnung zu System.Math.

4.3.9 Der sortierte Typ

Typ ordered ist ein Pseudotyp, der nur für Konvertierungen verwendet wird.

4.3.10 Der Pscustomobject-Typ

Typ pscustomobject ist ein Pseudotyp, der nur für Konvertierungen verwendet wird.

4.4 Generische Typen

Eine Reihe von Programmiersprachen und Umgebungen bieten Typen, die spezialisiert werden können. Viele dieser Typen werden als Containertypen bezeichnet, da Instanzen davon Objekte eines anderen Typs enthalten können. Erwägen Sie einen Typ namens "Stack", der einen Stapel von Werten darstellen kann, der gedrückt und abgehängt werden kann. Normalerweise möchte der Benutzer eines Stapels nur eine Art von Objekt auf diesem Stapel speichern. Wenn die Sprache oder Umgebung jedoch keine Typspezialisierung unterstützt, müssen mehrere unterschiedliche Varianten des Typstapels implementiert werden, auch wenn sie alle dieselbe Aufgabe ausführen, nur mit unterschiedlichen Typelementen.

Die Typspezialisierung ermöglicht die Implementierung eines generischen Typs , sodass er auf die Behandlung einiger Teilmengen von Typen beschränkt werden kann, wenn er verwendet wird. Beispiel:

  • Ein generischer Stapeltyp, der auf die Aufbewahrung von Zeichenfolgen spezialisiert ist, kann als Stack[string]geschrieben werden.
  • Ein generischer Wörterbuchtyp, der auf int-Schlüssel mit zugeordneten Zeichenfolgenwerten spezialisiert ist, kann als Dictionary[int,string]geschrieben werden.
  • Ein Stapel von Zeichenfolgen kann als Stack[Stack[string]].

Obwohl PowerShell keine integrierten generischen Typen definiert, kann sie solche Typen verwenden, wenn sie von der Hostumgebung bereitgestellt werden. Siehe die Syntax in §7.1.10.

Der vollständige Name für den oben vorgeschlagenen Typ Stack[string] ist System.Collections.Generic.Stack[string]. Der vollständige Name für den oben vorgeschlagenen Typ Dictionary[int,string] ist System.Collections.Generic.Dictionary[int,string].

4.5 Anonyme Typen

Unter bestimmten Umständen erstellt eine Implementierung von PowerShell Objekte eines bestimmten Typs, und diese Objekte verfügen über Elemente, auf die skripts zugegriffen werden kann. Der tatsächliche Name dieser Typen muss jedoch nicht angegeben werden, solange die barrierefreien Member ausreichend angegeben sind, damit sie verwendet werden können. Das heißt, Skripts können Objekte dieser Typen speichern und auf ihre Member zugreifen, ohne tatsächlich die Namen dieser Typen zu kennen. In den folgenden Unterabschnitten werden diese Typen angegeben.

4.5.1 Anbieterbeschreibungstyp

Dieser Typ kapselt den Status eines Anbieters. Sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Antriebe Instanzeigenschaft (schreibgeschützt) Implementierung definiert (§4.5.2) Eine Auflistung von Laufwerkbeschreibungsobjekten
Name Instanzeigenschaft (schreibgeschützt) Schnur Der Name des Anbieters

In PowerShell ist System.Management.Automation.ProviderInfodieser Typ .

4.5.2 Laufwerkbeschreibungstyp

Dieser Typ kapselt den Zustand eines Laufwerks. Sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
CurrentLocation Instanzeigenschaft (Lese-/Schreibzugriff) Schnur Der aktuelle Arbeitsort (§3.1.4) des Laufwerks
BESCHREIBUNG Instanzeigenschaft (Lese-/Schreibzugriff) Schnur Die Beschreibung des Laufwerks
Name Instanzeigenschaft (schreibgeschützt) Schnur Der Name des Laufwerks
Wurzel Instanzeigenschaft (schreibgeschützt) Schnur Der Name des Laufwerks

In PowerShell ist System.Management.Automation.PSDriveInfodieser Typ .

4.5.3 Typ der Variablenbeschreibung

Dieser Typ kapselt den Zustand einer Variablen. Sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Attribute Instanzeigenschaft (schreibgeschützt) Durch die Implementierung definiert Eine Sammlung von Attributen
BESCHREIBUNG Instanzeigenschaft (Lese-/Schreibzugriff) Schnur Die Der Variablen über die Cmdlets New-Variable oder Set-Variable zugewiesene Beschreibung.
Modul Instanzeigenschaft (schreibgeschützt) Implementierung definiert (§4.5.12) Das Modul, aus dem diese Variable exportiert wurde
ModuleName Instanzeigenschaft (schreibgeschützt) Schnur Das Modul, in dem diese Variable definiert wurde
Name Instanzeigenschaft (schreibgeschützt) Schnur Der Name, der der Variablen zugewiesen wurde, als sie in der PowerShell-Sprache oder über die New-Variable Und-Cmdlets Set-Variable erstellt wurde.
Optionen Instanzeigenschaft (Lese-/Schreibzugriff) Schnur Die Optionen, die der Variablen über die New-Variable Und-Cmdlets Set-Variable zugewiesen sind.
Wert Instanzeigenschaft (Lese-/Schreibzugriff) Objekt Der Wert, der der Variablen zugewiesen wurde, als sie in der PowerShell-Sprache oder über die New-Variable Und-Cmdlets Set-Variable zugewiesen wurde.

In PowerShell ist System.Management.Automation.PSVariabledieser Typ .

Windows PowerShell: Der Typ der Attributauflistung ist System.Management.Automation.PSVariableAttributeCollection.

4.5.4 Aliasbeschreibungstyp

Dieser Typ kapselt den Status eines Alias. Sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Befehlstyp Instanzeigenschaft (schreibgeschützt) Durch die Implementierung definiert Sollte gleich "Alias" sein.
Definition Instanzeigenschaft (schreibgeschützt) Schnur Der Befehl oder Alias, dem der Alias über die Cmdlets "New-Alias " oder "Set-Alias " zugewiesen wurde.
BESCHREIBUNG Instanzeigenschaft (Lese-/Schreibzugriff) Schnur Die dem Alias über die New-Alias Cmdlets Set-Alias zugewiesene Beschreibung.
Modul Instanzeigenschaft (schreibgeschützt) Implementierung definiert (§4.5.12) Das Modul, aus dem dieser Alias exportiert wurde
ModuleName Instanzeigenschaft (schreibgeschützt) Schnur Das Modul, in dem dieser Alias definiert wurde
Name Instanzeigenschaft (schreibgeschützt) Schnur Der Name, der dem Alias zugewiesen wurde, als er über die New-Alias Cmdlets Set-Alias erstellt wurde.
Optionen Instanzeigenschaft (Lese-/Schreibzugriff) Schnur Die dem Alias zugewiesenen Optionen über die New-Alias New-Alias oder Set-Alias Cmdlets.
OutputType Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Gibt die Typen der Werteausgabe durch den Befehl an, auf den der Alias verweist.
Die Parameter Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Die Parameter des Befehls.
ParameterSets Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Informationen zu den Parametersätzen, die dem Befehl zugeordnet sind.
ReferencedCommand Instanzeigenschaft (schreibgeschützt) Durch die Implementierung definiert Informationen zu dem Befehl, auf den sofort von diesem Alias verwiesen wird.
ResolvedCommand Instanzeigenschaft (schreibgeschützt) Durch die Implementierung definiert Informationen zum Befehl, in den der Alias schließlich aufgelöst wird.

In PowerShell ist System.Management.Automation.AliasInfodieser Typ .

4.5.5 Beschreibungstyp des Arbeitsstandorts

Dieser Typ kapselt den Zustand eines Arbeitsstandorts. Sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Antrieb Instanzeigenschaft (schreibgeschützt) Implementierung definiert (§4.5.2) Ein Laufwerkbeschreibungsobjekt
Pfad Instanzeigenschaft (schreibgeschützt) Schnur Der Arbeitsort
Anbieter Instanzeigenschaft (schreibgeschützt) Implementierung definiert (§4.5.1) Der Anbieter
ProviderPath Instanzeigenschaft (schreibgeschützt) Schnur Der aktuelle Pfad des Anbieters

Ein Stapel von Arbeitsorten ist eine Sammlung von Arbeitsstandortobjekten, wie oben beschrieben.

In PowerShell wird ein aktueller Arbeitsort durch ein Objekt vom Typ System.Management.Automation.PathInfodargestellt. Ein Stapel von Arbeitsorten wird durch ein Objekt vom Typ System.Management.Automation.PathInfoStackdargestellt, bei dem es sich um eine Auflistung von PathInfo Objekten handelt.

Beschreibungstyp der Umgebungsvariablen 4.5.6

Dieser Typ kapselt den Zustand einer Umgebungsvariable. Sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Name Instanzeigenschaft (Lese-/Schreibzugriff) Schnur Der Name der Umgebungsvariable
Wert Instanzeigenschaft (Lese-/Schreibzugriff) Schnur Der Wert der Umgebungsvariable

In PowerShell ist System.Collections.DictionaryEntrydieser Typ . Der Name der Variablen ist der Wörterbuchschlüssel. Der Wert der Umgebungsvariable ist der Wörterbuchwert. Der Name entspricht AliasPropertydem Schlüssel.

4.5.7 Anwendungsbeschreibungstyp

Dieser Typ kapselt den Zustand einer Anwendung. Sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Befehlstyp Instanzeigenschaft (schreibgeschützt) Durch die Implementierung definiert Sollte gleich "Anwendung" sein.
Definition Instanzeigenschaft (schreibgeschützt) Schnur Eine Beschreibung der Anwendung.
Erweiterung Instanzeigenschaft (Lese-/Schreibzugriff) Schnur Die Erweiterung der Anwendungsdatei.
Modul Instanzeigenschaft (schreibgeschützt) Implementierung definiert (§4.5.12) Das Modul, das diesen Befehl definiert.
ModuleName Instanzeigenschaft (schreibgeschützt) Schnur Der Name des Moduls, das den Befehl definiert.
Name Instanzeigenschaft (schreibgeschützt) Schnur Der Name des Befehls.
OutputType Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Gibt die Typen der Werteausgabe durch den Befehl an.
Die Parameter Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Die Parameter des Befehls.
ParameterSets Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Informationen zu den Parametersätzen, die dem Befehl zugeordnet sind.
Pfad Instanzeigenschaft (schreibgeschützt) Schnur Ruft den Pfad der Anwendungsdatei ab.

In PowerShell ist System.Management.Automation.ApplicationInfodieser Typ .

4.5.8 Cmdlet-Beschreibungstyp

Dieser Typ kapselt den Status eines Cmdlets. Sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Befehlstyp Instanzeigenschaft (schreibgeschützt) Durch die Implementierung definiert Sollte gleich "Cmdlet" sein.
DefaultParameterSet Instanzeigenschaft (schreibgeschützt) Durch die Implementierung definiert Der Standardparametersatz, der verwendet wird, wenn PowerShell nicht bestimmen kann, welcher Parameter basierend auf den angegebenen Argumenten verwendet werden soll.
Definition Instanzeigenschaft (schreibgeschützt) Schnur Eine Beschreibung des Cmdlets.
HelpFile Instanzeigenschaft (Lese-/Schreibzugriff) Schnur Der Pfad zur Hilfedatei für das Cmdlet.
ImplementingType Instanzeigenschaft (Lese-/Schreibzugriff) Durch die Implementierung definiert Der Typ, der das Cmdlet implementiert.
Modul Instanzeigenschaft (schreibgeschützt) Implementierung definiert (§4.5.12) Das Modul, das dieses Cmdlet definiert.
ModuleName Instanzeigenschaft (schreibgeschützt) Schnur Der Name des Moduls, das das Cmdlet definiert.
Name Instanzeigenschaft (schreibgeschützt) Schnur Der Name des Cmdlets.
Nomen Instanzeigenschaft (schreibgeschützt) Schnur Der Nomenname des Cmdlets.
OutputType Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Gibt die Typen der Vom Cmdlet ausgegebenen Werte an.
Die Parameter Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Die Parameter des Cmdlets.
ParameterSets Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Informationen zu den Parametersätzen, die dem Cmdlet zugeordnet sind.
Verb Instanzeigenschaft (schreibgeschützt) Schnur Der Verbname des Cmdlets.
PSSnapIn Instanzeigenschaft (schreibgeschützt) Durch die Implementierung definiert Windows PowerShell: Informationen zum Windows PowerShell-Snap-In, das zum Registrieren des Cmdlets verwendet wird.

In PowerShell ist System.Management.Automation.CmdletInfodieser Typ .

4.5.9 Beschreibungstyp für externe Skripts

Dieser Typ kapselt den Zustand eines externen Skripts (eines, das direkt von PowerShell ausführbar ist, aber nicht integriert ist). Sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Befehlstyp Instanzeigenschaft (schreibgeschützt) Durch die Implementierung definiert Sollte gleich "ExternalScript" sein.
Definition Instanzeigenschaft (schreibgeschützt) Schnur Eine Definition des Skripts.
Modul Instanzeigenschaft (schreibgeschützt) Implementierung definiert (§4.5.12) Das Modul, das dieses Skript definiert.
ModuleName Instanzeigenschaft (schreibgeschützt) Schnur Der Name des Moduls, das das Skript definiert.
Name Instanzeigenschaft (schreibgeschützt) Schnur Der Name des Skripts.
OriginalEncoding Instanzeigenschaft (schreibgeschützt) Durch die Implementierung definiert Die ursprüngliche Codierung, die zum Konvertieren der Zeichen des Skripts in Byte verwendet wird.
OutputType Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Gibt die Typen der Werteausgabe durch das Skript an.
Die Parameter Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Die Parameter des Skripts.
ParameterSets Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Informationen zu den Parametersätzen, die dem Skript zugeordnet sind.
Pfad Instanzeigenschaft (schreibgeschützt) Schnur Der Pfad zur Skriptdatei.
ScriptBlock Instanzeigenschaft (schreibgeschützt) Skriptblock Das externe Skript.
ScriptContents Instanzeigenschaft (schreibgeschützt) Schnur Der ursprüngliche Inhalt des Skripts.

In PowerShell ist System.Management.Automation.ExternalScriptInfodieser Typ .

4.5.10 Funktionsbeschreibungstyp

Dieser Typ kapselt den Status einer Funktion. Sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
CmdletBinding Instanzeigenschaft (schreibgeschützt) Boolesch Gibt an, ob die Funktion dieselbe Parameterbindung verwendet, die kompilierte Cmdlets verwenden (siehe §12.3.5).
Befehlstyp Instanzeigenschaft (schreibgeschützt) Durch die Implementierung definiert Kann für die Gleichheit mit "Function" oder "Filter" verglichen werden, um zu sehen, welche dieser Objekte darstellt.
DefaultParameterSet Instanzeigenschaft (schreibgeschützt) Schnur Gibt den Parameter an, der verwendet werden soll, wenn er nicht anhand der Argumente bestimmt werden kann (siehe §12.3.5).
Definition Instanzeigenschaft (schreibgeschützt) Schnur Eine Zeichenfolgenversion von ScriptBlock
BESCHREIBUNG Instanzeigenschaft (Lese-/Schreibzugriff) Schnur Die Beschreibung der Funktion.
Modul Instanzeigenschaft (schreibgeschützt) Implementierung definiert (§4.5.12) Das Modul, aus dem diese Funktion exportiert wurde
ModuleName Instanzeigenschaft (schreibgeschützt) Schnur Das Modul, in dem diese Funktion definiert wurde
Name Instanzeigenschaft (schreibgeschützt) Schnur Der Name der Funktion.
Optionen Instanzeigenschaft (Lese-/Schreibzugriff) Durch die Implementierung definiert Die Bereichsoptionen für die Funktion (§3.5.4).
OutputType Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Gibt die Typen der Werteausgabe in der Reihenfolge an (siehe §12.3.6).
Die Parameter Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Gibt die Parameternamen in der Reihenfolge an. Wenn die Funktion wie ein Cmdlet fungiert (siehe CmdletBinding oben), werden die allgemeinen Parameter am Ende der Auflistung eingeschlossen.
ParameterSets Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Informationen zu den Parametersätzen, die dem Befehl zugeordnet sind. Für jeden Parameter zeigt das Ergebnis den Parameternamen und -typ an und gibt an, ob der Parameter obligatorisch ist, nach Position oder einem Schalterparameter. Wenn die Funktion wie ein Cmdlet fungiert (siehe CmdletBinding oben), werden die allgemeinen Parameter am Ende der Auflistung eingeschlossen.
ScriptBlock Instanzeigenschaft (schreibgeschützt) scriptblock (§4.3.6) Der Textkörper der Funktion

In PowerShell ist System.Management.Automation.FunctionInfodieser Typ .

  • CommandType hat Typ System.Management.Automation.CommandTypes.
  • Options hat Typ System.Management.Automation.ScopedItemOptions.
  • OutputType hat Typ System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.PSTypeName,System.Management.Automation]].
  • Parameters hat Typ System.Collections.Generic.Dictionary``2[[System.String,mscorlib],[System.Management.Automation.ParameterMetadata,System.Management.Automation]].
  • ParameterSets hat Typ System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.CommandParameterSetInfo,System.Management.Automation]].
  • Sichtbarkeit hat Typ System.Management.Automation.SessionStateEntryVisibility.
  • PowerShell verfügt auch über eine Eigenschaft namens Visibility.

4.5.11 Filterbeschreibungstyp

Dieser Typ kapselt den Status eines Filters. Sie verfügt über den gleichen Satz barrierefreier Member wie der Funktionsbeschreibungstyp (§4.5.10).

In PowerShell ist System.Management.Automation.FilterInfodieser Typ . Sie hat denselben Satz von Eigenschaften wie System.Management.Automation.FunctionInfo (§4.5.11).

4.5.12 Modulbeschreibungstyp

Dieser Typ kapselt den Status eines Moduls. Sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
BESCHREIBUNG Instanzeigenschaft (Lese-/Schreibzugriff) Schnur Die Beschreibung des Moduls (durch das Manifest festgelegt)
ModuleType Instanzeigenschaft (schreibgeschützt) Durch die Implementierung definiert Der Typ des Moduls (Manifest, Skript oder Binärdatei)
Name Instanzeigenschaft (schreibgeschützt) Schnur Der Name des Moduls
Pfad Instanzeigenschaft (schreibgeschützt) Schnur Pfad des Moduls

In PowerShell ist System.Management.Automation.PSModuleInfodieser Typ . Der Typ von ModuleType ist System.Management.Automation.ModuleType.

4.5.13 Benutzerdefinierter Objektbeschreibungstyp

Dieser Typ kapselt den Status eines benutzerdefinierten Objekts. Sie hat keine barrierefreien Mitglieder.

In PowerShell ist System.Management.Automation.PSCustomObjectdieser Typ . Die Cmdlets und New-Object können ein Objekt dieses Typs Import-Module generieren.

4.5.14 Befehlsbeschreibungstyp

Die automatische Variable $PSCmdlet ist ein Objekt, das das auszuführende Cmdlet oder die Auszuführende Funktion darstellt. Der Typ dieses Objekts wird definiert; sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
ParameterSetName Instanzeigenschaft (schreibgeschützt) Schnur Name des aktuellen Parametersatzes (siehe ParameterSetName)
SollteWeiter Instanzmethode

Überlastet

/Bool

Fordert eine Bestätigung eines Vorgangs vom Benutzer an.
SollteProzess Instanzmethode

Überlastet

/Bool

Fordert eine Bestätigung des Benutzers an, bevor ein Vorgang ausgeführt wird.

In PowerShell ist dieser Typ "System.Management.Automation.PSScriptCmdlet".

4.5.15 Fehlerdatensatzbeschreibungstyp

Die automatische Variable $Error enthält eine Auflistung von Fehlerdatensätzen, die aktuelle Fehler darstellen (§3.12). Obwohl der Typ dieser Auflistung nicht angegeben ist, wird das Tiefstellen unterstützt, um Zugriff auf einzelne Fehlerdatensätze zu erhalten.

In PowerShell lautet System.Collections.ArrayListder Sammlungstyp . Der Typ eines einzelnen Fehlerdatensatzes in der Auflistung lautet System.Management.Automation.ErrorRecord. Dieser Typ hat die folgenden öffentlichen Eigenschaften:

  • CategoryInfo – Ruft Informationen zur Kategorie des Fehlers ab.
  • ErrorDetails – Ruft detailliertere Fehlerinformationen ab und legt diese fest, z. B. eine Ersetzungsfehlermeldung.
  • Exception – Ruft die Ausnahme ab, die diesem Fehlerdatensatz zugeordnet ist.
  • FullyQualifiedErrorId – Ruft den vollqualifizierten Fehlerbezeichner für diesen Fehlerdatensatz ab.
  • InvocationInfo – Ruft Informationen zum Befehl ab, der beim Auftreten des Fehlers aufgerufen wurde.
  • PipelineIterationInfo – Ruft den Status der Pipeline ab, wenn dieser Fehlerdatensatz erstellt wurde.
  • TargetObject – Ruft das Objekt ab, das beim Auftreten des Fehlers verarbeitet wurde.

4.5.16 Enumerator-Beschreibungstyp

Eine Reihe von Variablen sind Enumerationen für Sammlungen (§4). Die automatische Variable $foreach ist der Enumerator, der für jede Anweisung foreach erstellt wird. Die automatische Variable $input ist der Enumerator für eine Sammlung, die von der Pipeline an eine Funktion übermittelt wird. Die automatische Variable $switch ist der Enumerator, der für jede Anweisung switch erstellt wird.

Der Typ eines Enumerators wird definiert; sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Aktuell Instanzeigenschaft (schreibgeschützt) Objekt Ruft das aktuelle Element in der Auflistung ab. Wenn der Enumerator derzeit nicht an einem Element der Auflistung positioniert ist, wird das Verhalten definiert.
MoveNext Instanzmethode Keine/Bool Wechselt den Enumerator zum nächsten Element der Auflistung. Gibt $true zurück, wenn der Enumerator erfolgreich zum nächsten Element erweitert wurde; $false, wenn der Enumerator das Ende der Auflistung übergeben hat.

In PowerShell werden diese Member in der Schnittstelle System.IEnumeratordefiniert, die von den unten angegebenen Typen implementiert wird. Wenn der Enumerator derzeit nicht an einem Element der Auflistung positioniert ist, wird eine Ausnahme vom Typ InvalidOperationException ausgelöst. Für $foreachdiesen Typ ist System.Array+SZArrayEnumeratordieser Typ . Für $inputdiesen Typ ist System.Collections.ArrayList+ArrayListEnumeratorSimpledieser Typ . Für $switchdiesen Typ ist System.Array+SZArrayEnumeratordieser Typ .

4.5.17 Verzeichnisbeschreibungstyp

Das Cmdlet "New-Item " kann Elemente verschiedener Arten erstellen, darunter FileSystem-Verzeichnisse. Der Typ eines Verzeichnisbeschreibungsobjekts ist implementierungsdefiniert; sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Attribute Instanzeigenschaft (Lese-/Schreibzugriff) Implementierung definiert (§4.2.6.3) Dient zum Abrufen oder Festlegen eines oder mehrerer Attribute des Verzeichnisobjekts.
Erstellungszeit Instanzeigenschaft (Lese-/Schreibzugriff) Implementierung definiert (§4.5.19) Ruft die Erstellungszeit des Verzeichnisobjekts ab und legt sie fest.
Erweiterung Instanzeigenschaft (schreibgeschützt) Schnur Ruft den Erweiterungsteil des Verzeichnisnamens ab.
Vollständiger Name Instanzeigenschaft (schreibgeschützt) Schnur Ruft den vollständigen Pfad des Verzeichnisses ab.
Letzte Schreibzeit Instanzeigenschaft (Lese-/Schreibzugriff) Implementierung definiert (§4.5.19) Ruft die Uhrzeit ab, zu der das Verzeichnis zuletzt geschrieben wurde, und legt sie fest.
Name Instanzeigenschaft (schreibgeschützt) Schnur Ruft den Namen des Verzeichnisses ab.

In PowerShell ist System.IO.DirectoryInfodieser Typ . Der Typ der Attributes-Eigenschaft lautet System.IO.FileAttributes.

4.5.18 Dateibeschreibungstyp

Das Cmdlet New-Item kann Elemente verschiedener Arten erstellen, einschließlich FileSystem-Dateien. Der Typ eines Dateibeschreibungsobjekts ist implementierungsdefiniert; sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Attribute Instanzeigenschaft (Lese-/Schreibzugriff) Implementierung definiert (§4.2.6.3) Dient zum Abrufen oder Festlegen eines oder mehrerer Attribute des Dateiobjekts.
Basename Instanzeigenschaft (schreibgeschützt) Schnur Ruft den Namen der Datei mit Ausnahme der Erweiterung ab.
Erstellungszeit Instanzeigenschaft (Lese-/Schreibzugriff) Implementierung definiert (§4.5.19) Ruft die Erstellungszeit des Dateiobjekts ab und legt sie fest.
Erweiterung Instanzeigenschaft (schreibgeschützt) Schnur Ruft den Erweiterungsteil des Dateinamens ab.
Vollständiger Name Instanzeigenschaft (schreibgeschützt) Schnur Ruft den vollständigen Pfad der Datei ab.
Letzte Schreibzeit Instanzeigenschaft (Lese-/Schreibzugriff) Implementierung definiert (§4.5.19) Ruft die Uhrzeit ab, zu der die Datei zuletzt geschrieben wurde, und legt sie fest.
Länge Instanzeigenschaft (schreibgeschützt) long Ruft die Größe der Datei in Byte ab.
Name Instanzeigenschaft (schreibgeschützt) Schnur Ruft den Namen der Datei ab.
Versionsinformation Instanzeigenschaft (schreibgeschützt) Durch die Implementierung definiert Windows PowerShell: This ScriptProperty returns a System.Diagnostics.FileVersionInfo for the file.

In PowerShell ist System.IO.FileInfodieser Typ .

4.5.19 Date-Time Beschreibungstyp

Der Typ eines Datum-Uhrzeit-Beschreibungsobjekts wird definiert; sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Tag Instanzeigenschaft (schreibgeschützt) INT Ruft die Tageskomponente des Monats ab, der durch diese Instanz dargestellt wird.
Stunde Instanzeigenschaft (schreibgeschützt) INT Ruft die Stundenkomponente des durch diese Instanz dargestellten Datums ab.
Minute Instanzeigenschaft (schreibgeschützt) INT Ruft die Minutenkomponente des durch diese Instanz dargestellten Datums ab.
Monat Instanzeigenschaft (schreibgeschützt) INT Ruft die Monatskomponente des durch diese Instanz dargestellten Datums ab.
Sekunde Instanzeigenschaft (schreibgeschützt) INT Ruft die Sekundenkomponente des Durch diese Instanz dargestellten Datums ab.
Jahr Instanzeigenschaft (schreibgeschützt) INT Ruft die Jahreskomponente des Durch diese Instanz dargestellten Datums ab.

Ein Objekt dieses Typs kann mit dem Cmdlet Get-Date erstellt werden.

In PowerShell ist System.DateTimedieser Typ .

4.5.20 Group-Info Beschreibungstyp

Der Typ eines Gruppeninformationsbeschreibungsobjekts wird definiert; sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Anzahl Instanzeigenschaft (schreibgeschützt) INT Ruft die Anzahl der Elemente in der Gruppe ab.
Gruppe Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Ruft die Elemente der Gruppe ab.
Name Instanzeigenschaft (schreibgeschützt) Schnur Ruft den Namen der Gruppe ab.
Werte Instanzeigenschaft (schreibgeschützt) Implementierungsdefinierte Sammlung Ruft die Werte der Elemente der Gruppe ab.

Ein Objekt dieses Typs kann mit dem Cmdlet Group-Object erstellt werden.

In PowerShell ist Microsoft.PowerShell.Commands.GroupInfodieser Typ .

4.5.21 GenerischerMeasure-Info Beschreibungstyp

Der Typ eines generischen Measure-Info-Beschreibungsobjekts wird definiert; sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Durchschnitt Instanzeigenschaft (schreibgeschützt) doppelt Ruft den Mittelwert der Werte der gemessenen Eigenschaften ab.
Anzahl Instanzeigenschaft (schreibgeschützt) INT Ruft die Anzahl der Objekte mit den angegebenen Eigenschaften ab.
Höchstwert Instanzeigenschaft (schreibgeschützt) doppelt Ruft den Maximalwert der angegebenen Eigenschaften ab.
Mindestwert Instanzeigenschaft (schreibgeschützt) doppelt Ruft den Minimalwert der angegebenen Eigenschaften ab.
Eigentum Instanzeigenschaft (schreibgeschützt) Schnur Ruft die zu messende Eigenschaft ab.
Summe Instanzeigenschaft (schreibgeschützt) doppelt Ruft die Summe der Werte der angegebenen Eigenschaften ab.

Ein Objekt dieses Typs kann vom Cmdlet Measure-Object erstellt werden.

In PowerShell ist Microsoft.PowerShell.Commands.GenericMeasureInfodieser Typ .

4.5.22 Text-Measure-Info Beschreibungstyp

Der Typ eines Textinformationsbeschreibungsobjekts wird definiert; sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Zeichen Instanzeigenschaft (schreibgeschützt) INT Ruft die Anzahl der Zeichen im Zielobjekt ab.
Linien Instanzeigenschaft (schreibgeschützt) INT Ruft die Anzahl der Zeilen im Zielobjekt ab.
Eigentum Instanzeigenschaft (schreibgeschützt) Schnur Ruft die zu messende Eigenschaft ab.
Wörter Instanzeigenschaft (schreibgeschützt) INT Ruft die Anzahl der Wörter im Zielobjekt ab.

Ein Objekt dieses Typs kann mit dem Cmdlet Measure-Objecterstellt werden.

In PowerShell ist Microsoft.PowerShell.Commands.TextMeasureInfodieser Typ .

4.5.23 Anmeldeinformationstyp

Ein Anmeldeinformationsobjekt kann dann in verschiedenen Sicherheitsvorgängen verwendet werden. Der Typ eines Anmeldeinformationsobjekts wird definiert; sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Passwort Instanzeigenschaft (schreibgeschützt) Durch die Implementierung definiert Ruft das Kennwort ab.
Nutzername Instanzeigenschaft (schreibgeschützt) Schnur Ruft den Benutzernamen ab.

Ein Objekt dieses Typs kann mit dem Cmdlet Get-Credential erstellt werden.

In PowerShell ist System.Management.Automation.PSCredentialdieser Typ .

4.5.24 Methodenentwurfstyp

Der Typ eines Methodenentwurfsgebers wird definiert; sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Aufrufen Instanzmethode Objekt/Variable Zahl und Typ Verwendet eine variable Anzahl von Argumenten und ruft indirekt die Methode auf, auf die vom übergeordneten Methodenentwurfator verwiesen wird, und übergibt die Argumente.

Ein Objekt dieses Typs kann durch einen Aufrufausdruck (§7.1.3) erstellt werden.

In PowerShell ist dieser Typ "System.Management.Automation.PSMethod".

4.5.25 Memberdefinitionstyp

Dieser Typ kapselt die Definition eines Elements. Sie verfügt über die folgenden barrierefreien Mitglieder:

Mitglied Mitglied kind Typ Zweck
Definition Instanzeigenschaft (schreibgeschützt) Schnur Ruft die Definition des Elements ab.
MemberType Instanzeigenschaft (schreibgeschützt) Durch die Implementierung definiert Ruft den PowerShell-Typ des Elements ab.
Name Instanzeigenschaft (schreibgeschützt) Schnur Ruft den Namen des Elements ab.
Typname Instanzeigenschaft (schreibgeschützt) Schnur Ruft den Typnamen des Elements ab.

In PowerShell ist Microsoft.PowerShell.Commands.MemberDefinitiondieser Typ .

4.6 Typerweiterung und Anpassung

Eine PowerShell-Implementierung enthält eine Familie von Kerntypen (die in diesem Kapitel dokumentiert sind), die jeweils ihre eigenen Basismember enthalten. Diese Member können Methoden oder Eigenschaften sein, und sie können Instanz oder statische Member sein. Beispielsweise sind die Basismber der Typzeichenfolge (§4.3.1) die Instanzeigenschaft Length und die Instanzmethoden ToLower und ToUpper.

Wenn ein Objekt erstellt wird, enthält es alle Instanzeigenschaften des Typs dieses Objekts, und die Instanzmethoden dieses Typs können für dieses Objekt aufgerufen werden. Ein Objekt kann über das Hinzufügen von Instanzmitgliedern zur Laufzeit angepasst werden. Das Ergebnis wird als benutzerdefiniertes Objekt bezeichnet. Alle Mitglieder, die einer Instanz hinzugefügt wurden, sind nur für die Lebensdauer dieser Instanz vorhanden; andere Instanzen desselben Kerntyps sind davon nicht betroffen.

Der Basismembersatz eines Typs kann durch das Hinzufügen der folgenden Arten von Membern erweitert werden:

  • angepasste Mitglieder, über das Extended Type System (ETS), die meisten Details, die nicht angegeben sind.
  • erweiterte Mitglieder über das Cmdlet "Add-Member".

In PowerShell können erweiterte Mitglieder auch über types.ps1xml Dateien hinzugefügt werden. Angepasste und erweiterte Mitglieder werden gemeinsam als synthetischeMitglieder bezeichnet.

Das ETS fügt alle PowerShell-Objekte die folgenden Member hinzu: psbase, psadapted, psextended und pstypenames. Weitere Informationen zu diesen Membern finden Sie in den Parametern "Force " und " View " im Cmdlet "Get-Member ".

Ein Instanzmitglied kann ein erweitertes und/oder angepasstes Mitglied desselben Namens ausblenden, und ein erweitertes Mitglied kann ein angepasstes Mitglied ausblenden. In solchen Fällen kann das Element "psadapted " und "psextended " verwendet werden, um auf diese ausgeblendeten Member zuzugreifen.

Wenn ein types.ps1xml Mitglied namens "Supports" angibt, obj.psextended bietet er nur Zugriff auf dieses Mitglied und nicht auf ein Mitglied, das über Add-Member"Supports" hinzugefügt wurde.

Es gibt drei Möglichkeiten, ein benutzerdefiniertes Objekt mit einem neuen Element M zu erstellen:

  1. Dieser Ansatz kann verwendet werden, um ein oder mehrere NoteProperty-Elemente hinzuzufügen.

    $x = New-Object PSObject -Property @{M = 123}
    
  2. Dieser Ansatz kann zum Hinzufügen von NoteProperty- oder ScriptMethod-Elementen verwendet werden.

    $x = New-Module -AsCustomObject {$M = 123 ; Export-ModuleMember --Variable M}
    
  3. Dieser Ansatz kann verwendet werden, um eine beliebige Art von Mitglied hinzuzufügen.

    $x = New-Object PSObject
    Add-Member -InputObject $x -Name M -MemberType NoteProperty -Value 123
    

PSObject ist der Basistyp aller PowerShell-Typen.