Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In PowerShell verfügt jeder Wert über einen Typ, und Typen fallen in eine von zwei Hauptkategorien: Werttypen und Verweistypen. Betrachten Sie den Typ int
, der typisch für Werttypen ist. Ein Wert vom Typ int
ist vollkommen eigenständig. Alle Bits, die zur Darstellung dieses Werts erforderlich sind, 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 Verweistypen ist. Ein so genannter Wert eines Arraytyps kann entweder einen Verweis auf ein Objekt enthalten, das die eigentlichen Arrayelemente enthält, oder den Nullverweis, dessen Wert $null
lautet. Die wichtige Unterscheidung zwischen den beiden Typkategorien wird am besten anhand der semantischen Unterschiede während der Zuweisung demonstriert. 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 können, umfasst die Zuweisung eines Verweistypwerts eine flache Kopie. Dabei handelt es sich um eine Kopie des Verweises auf das Objekt anstelle des tatsächlichen Werts. Im Gegensatz dazu muss für eine tiefe Kopie auch eine Kopie des Objekts erstellt werden.
Ein numerischer Typ ist ein Typ, der die Darstellung von Ganzzahl- oder Bruchwerten zulässt und arithmetische Operationen für diese Werte unterstützt. Die Menge numerischer Typen umfasst die Typen „Integer“ (§4.2.3) und „reelle Zahl“ (§4.2.4), aber nicht „Boolean“ (§4.2.1) oder „Char“ (§4.2.2). Eine Implementierung kann andere numerische Typen (z. B. Byte mit Vorzeichen, ganze Zahl ohne Vorzeichen und ganze Zahl anderer Größen) bereitstellen.
Eine Auflistung ist eine Gruppe von einem oder mehreren verwandten Elementen, die nicht denselben Typ aufweisen müssen. Beispiele für Auflistungstypen sind Arrays, Stapel, Warteschlangen, Listen und Hashtabellen. Ein Programm kann für die Elemente in einer Auflistung eine Enumeration (oder Iteration) durchführen, um nacheinander Zugriff auf die einzelnen Elemente zu erhalten. Gängige Methoden hierzu sind die foreach-Anweisung (§8.4.4) und das Cmdlet ForEach-Object. Der Typ eines Objekts, das einen Enumerator darstellt, wird in §4.5.16 beschrieben.
In diesem Kapitel gibt es Tabellen, in denen die zugänglichen Member für einen bestimmten Typ aufgeführt sind. Für Methoden wird der Typ in der folgenden Form geschrieben: Rückgabetyp/Argumenttypliste. Wenn die Argumenttypliste zu lang ist, um in diese Spalte zu passen, wird sie stattdessen in der Spalte Purpose angezeigt.
Andere Integertypen SByte
sind Int16
, UInt16
, UInt32
und UInt64
, die alle im Namespace System enthalten sind.
Viele Auflistungsklassen werden als Teil der Namespaces System.Collections oder System.Collections.Generic definiert. Die meisten Auflistungsklassen implementieren die Schnittstellen ICollection
, IComparer
, IEnumerable
, IList
, IDictionary
und IDictionaryEnumerator
sowie ihre generischen Entsprechungen.
4.1 Spezielle Typen
4.1.1 Der void-Typ
Dieser Typ kann nicht instanziiert werden. Er bietet eine Möglichkeit, einen Wert explizit mithilfe des Umwandlungsoperators (§7.2.9) zu verwerfen.
4.1.2 Der NULL-Typ
Der NULL-Typ verfügt über eine Instanz, die automatische Variable „$null“ (§2.3.2.2), die auch als NULL-Wert bezeichnet wird. Dieser Wert bietet eine Möglichkeit, „Nichts“ in Verweiskontexten auszudrücken. Die Merkmale dieses Typs sind nicht spezifiziert.
4.1.3 Der Objekttyp
Jeder Typ in PowerShell mit Ausnahme des NULL-Typs (§4.1.2) wird direkt oder indirekt vom Typ „Objekt“ abgeleitet, daher ist das Objekt der ultimative Basistyp aller Nicht-NULL-Typen. Eine auf den Typ „Objekt“ beschränkte Variable (§5.3) ist eigentlich gar nicht eingeschränkt, weil sie einen Wert eines beliebigen Typs enthalten kann.
4.2 Werttypen
4.2.1 Boolean
Der boolesche Typ lautet bool
. Es gibt nur zwei Werte dieses Typs: FALSE und TRUE, dargestellt durch die automatischen Variablen $false
und $true
(§2.3.2.2).
In PowerShell wird bool
System.Boolean
zugeordnet.
4.2.2 Zeichen
Ein Zeichenwert verfügt über den Typ „char“, der jeden mit UTF-16 codierten 16-Bit-Unicode-Codepunkt speichern kann.
Der Typ „char“ umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
MaxValue | Statische Eigenschaft (schreibgeschützt) | char | Der größtmögliche Wert des Typs „char“. |
MinValue | Statische Eigenschaft (schreibgeschützt) | char | Der kleinstmögliche Wert des Typs „char“. |
IsControl | für eine statische Methode | bool/char | Testet, ob das Zeichen ein Steuerzeichen ist. |
IsDigit | für eine statische Methode | bool/char | Testet, ob das Zeichen eine Dezimalziffer ist. |
IsLetter | für eine statische Methode | bool/char | Testet, ob das Zeichen ein Buchstabe ist. |
IsLetterOrDigit | für eine statische Methode | bool/char | Testet, ob das Zeichen eine Dezimalziffer oder ein Buchstabe ist. |
IsLower | für eine statische Methode | bool/char | Testet, ob das Zeichen ein Kleinbuchstabe ist. |
IsPunctuation | für eine statische Methode | bool/char | Testet, ob das Zeichen ein Satzzeichen ist. |
IsUpper | für eine statische Methode | bool/char | Testet, ob das Zeichen ein Großbuchstabe ist. |
IsWhiteSpace | für eine statische Methode | bool/char | Testet, ob das Zeichen ein Leerraumzeichen ist. |
ToLower | für eine statische Methode | char/string | Konvertiert das Zeichen in einen Kleinbuchstaben. |
ToUpper | für eine statische Methode | char/string | Konvertiert das Zeichen in einen Großbuchstaben. |
Windows PowerShell: „char“ wird „System.Char“ zugeordnet.
4.2.3 Integer
Es gibt zwei ganzzahlige Typen mit Vorzeichen, die beide die Zweierkomplementdarstellung für negative Werte verwenden:
- Der Typ
int
verwendet 32 Bits und umfasst somit einen Bereich von -2147483648 bis +2147483647 (einschließlich). - Der Typ
long
verwendet 64 Bits und umfasst somit einen Bereich von -9223372036854775808 bis +9223372036854775807 (einschließlich).
Der Typ „int“ umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
MaxValue | Statische Eigenschaft (schreibgeschützt) | INT | Der größtmögliche Wert des Typs „int“. |
MinValue | Statische Eigenschaft (schreibgeschützt) | INT | Der kleinstmögliche Wert des Typs „int“. |
Der Typ „long“ umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
MaxValue | Statische Eigenschaft (schreibgeschützt) | long | Der größtmögliche Wert des Typs „long“. |
MinValue | Statische Eigenschaft (schreibgeschützt) | long | Der kleinstmögliche Wert des Typs „long“. |
Es gibt einen ganzzahligen Typ ohne Vorzeichen:
- Der Typ
byte
verwendet 8 Bits und umfasst somit einen Bereich von 0 bis 255 (einschließlich).
Der Typ „byte
“ umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
MaxValue | Statische Eigenschaft (schreibgeschützt) | byte | Der größtmögliche Wert des Typs „byte“. |
MinValue | Statische Eigenschaft (schreibgeschützt) | byte | Der kleinstmögliche Wert des Typs „byte“. |
In PowerShell werden byte
, int
und long
jeweils System.Byte
, System.Int32
und System.Int64
zugeordnet.
4.2.4 Reelle Zahl
4.2.4.1 „float“ und „double“
Es gibt zwei reelle Typen (oder Gleitkommatypen):
- Der Typ
float
verwendet die 32-Bit-IEEE-Darstellung mit einfacher Genauigkeit. - Der Typ
double
verwendet die 64-Bit-IEEE-Darstellung mit doppelter Genauigkeit.
Ein dritter Typname, single
, ist ein Synonym für den Typ float
. In dieser Spezifikation wird ausschließlich float
verwendet.
Obwohl die Größe und Darstellung der Typen float
und double
durch diese Spezifikation definiert sind, kann in einer Implementierung die erweiterte Genauigkeit für Zwischenergebnisse verwendet werden.
Der Typ „float“ umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
MaxValue | Statische Eigenschaft (schreibgeschützt) | float | Der größtmögliche Wert des Typs „float“. |
MinValue | Statische Eigenschaft (schreibgeschützt) | float | Der kleinstmögliche Wert des Typs „float“. |
NaN | Statische Eigenschaft (schreibgeschützt) | float | Der konstante Wert „NaN“ (Not a Number). |
NegativeInfinity | Statische Eigenschaft (schreibgeschützt) | float | Der konstante Wert der negativen Unendlichkeit. |
PositiveInfinity | Statische Eigenschaft (schreibgeschützt) | float | Der konstante Wert der positiven Unendlichkeit. |
Der Typ „double“ umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
MaxValue | Statische Eigenschaft (schreibgeschützt) | double | Der größtmögliche Wert des Typs „double“. |
MinValue | Statische Eigenschaft (schreibgeschützt) | double | Der kleinstmögliche Wert des Typs „double“. |
NaN | Statische Eigenschaft (schreibgeschützt) | double | Der konstante Wert „NaN“ (Not a Number). |
NegativeInfinity | Statische Eigenschaft (schreibgeschützt) | double | Der konstante Wert der negativen Unendlichkeit. |
PositiveInfinity | Statische Eigenschaft (schreibgeschützt) | double | Der konstante Wert der positiven Unendlichkeit. |
In PowerShell werden float
und double
jeweils System.Single
und System.Double
zugeordnet.
4.2.4.2 Dezimal
Der Dezimaltyp „Decimal“ verwendet eine 128-Bit-Darstellung. Er muss mindestens eine Nachkommastelle s mit 0 <= s <= mindestens 28 unterstützen sowie einen Wertbereich zwischen -79228162514264337593543950335 und 79228162514264337593543950335. Die tatsächliche Darstellung des Dezimaltyps wird durch die Implementierung definiert.
Der Typ „Decimal“ umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
MaxValue | Statische Eigenschaft (schreibgeschützt) | Decimal | Der größtmögliche Wert des Typs „Decimal“. |
MinValue | Statische Eigenschaft (schreibgeschützt) | Decimal | Der kleinstmögliche Wert des Typs „Decimal“. |
Hinweis
Reelle Dezimalzahlen weisen das Merkmal der Nachkommastelle auf, das die Reihe der Ziffern rechts vom Dezimaltrennzeichen darstellt. Zum Beispiel weist der Wert 2,340 drei Nachkommastellen auf, wobei nachstehende Nullen signifikant sind. Wenn zwei reelle Dezimalzahlen addiert oder subtrahiert werden, entspricht die Anzahl der Nachkommastellen des Ergebnisses der höheren Anzahl der beiden Nachkommastellen-Werte. Beispiel: 1,0 + 2,000 = 3,000, aber 5,0 - 2,00 = 3.00. Wenn zwei reelle Dezimalzahlen multipliziert werden, entspricht die Anzahl der Nachkommastellen des Ergebnisses der Summe der beiden Nachkommastellenwerte. Beispiel: 1,0 × 2,000 = 2,0000. Wenn zwei reelle Dezimalzahlen dividiert werden, entspricht die Anzahl der Nachkommastellen im Ergebnis der Nachkommastellenanzahl der zu teilenden Zahl minus der Nachkommastellenanzahl des Teilers. Beispiel: 4,00000/2,000 = 2,00. Die Nachkommastellenanzahl muss jedoch groß genug sein, um das richtige Ergebnis darzustellen. Beispiel: 3,000/2,000, 3,00/2,000, 3,0/2,000 und 3/2 ergeben alle 1,5.
In PowerShell wird decimal
System.Decimal
zugeordnet. Die Darstellung von „Decimal“ lautet wie folgt:
- Wenn er als Array aus vier
int
-Werten betrachtet wird, enthält er die folgenden Elemente:- Index 0 (Bits 0–31) enthält die niederwertigen 32 Bits des Dezimalkoeffizienten.
- Index 1 (Bits 32–63) enthält die mittleren 32 Bits des Dezimalkoeffizienten.
- Index 2 (Bits 64–95) enthält die höherwertigen 32 Bits des Dezimalkoeffizienten.
- Index 3 (Bits 96–127) enthält das Vorzeichenbit und die Nachkommastellen wie folgt:
- Bits 0 bis 15 sind null.
- Bits 16 bis 23 enthalten die Nachkommastellen als Wert von 0 bis 28.
- Bits 24 bis 30 sind null.
- Bit 31 ist das Vorzeichen (0 für positiv, 1 für negativ).
4.2.5 Der Typ „Switch“
Dieser Typ wird verwendet, um den Typ eines Parameters in einem Befehl einzuschränken (§8.10.5). Wenn ein Argument mit dem entsprechenden Parameternamen vorhanden ist, weist der Parameter den Wert „$true“ auf. Andernfalls ergibt er $false
.
In PowerShell wird switch
System.Management.Automation.SwitchParameter
zugeordnet.
4.2.6 Enumerationstypen
Ein Enumerationstyp definiert eine Menge benannter Konstanten, die alle möglichen Werte darstellen, die einem Objekt dieses Enumerationstyps zugewiesen werden können. In einigen Fällen ist die Menge der Werte so beschaffen, dass jeweils nur ein Wert dargestellt werden kann. In anderen Fällen sind die Werte unterschiedliche Potenzen von zwei, und über den Operator -bor (§7.8.5) können mehrere Werte in demselben Objekt codiert werden.
Die PowerShell-Umgebung stellt eine Reihe von Enumerationstypen bereit, wie in den folgenden Abschnitten beschrieben.
4.2.6.1 Typ für Aktionspräferenzen
Dieser durch die Implementierung definierte Typ verfügt über die folgenden zugänglichen Member, deren Werte sich gegenseitig ausschließen:
Member | Memberart | Zweck |
---|---|---|
Continue | Enumerationskonstante | Die PowerShell-Runtime setzt die Verarbeitung fort und benachrichtigt den Benutzer, dass eine Aktion erfolgt ist. |
Diagnosetool | Enumerationskonstante | Die PowerShell-Runtime beendet die Verarbeitung und fragt den Benutzer, wie der Vorgang fortgesetzt werden soll. |
SilentlyContinue | Enumerationskonstante | Die PowerShell-Runtime setzt die Verarbeitung fort, ohne den Benutzer darüber zu benachrichtigen, dass eine Aktion erfolgt ist. |
Beenden | Enumerationskonstante | Die PowerShell-Runtime beendet die Verarbeitung, wenn eine Aktion erfolgt. |
In PowerShell heißt dieser Typ System.Management.Automation.ActionPreference
.
4.2.6.2 Typ zur Auswirkungsbestätigung
Dieser durch die Implementierung definierte Typ verfügt über die folgenden zugänglichen Member, deren Werte sich gegenseitig ausschließen:
Member | Memberart | Zweck |
---|---|---|
Hoch | Enumerationskonstante | Die ausgeführte Aktion birgt ein hohes Datenverlustrisiko, z. B. die Neuformatierung einer Festplatte. |
Niedrig | Enumerationskonstante | Die ausgeführte Aktion birgt ein geringes Datenverlustrisiko. |
Medium | Enumerationskonstante | Die ausgeführte Aktion birgt ein mittleres Datenverlustrisiko. |
Keine | Enumerationskonstante | Es werden keine Aktionen bestätigt (alle Bestätigungsanforderungen werden unterdrückt). |
In PowerShell heißt dieser Typ System.Management.Automation.ConfirmImpact
.
4.2.6.3 Typ für Dateiattribute
Dieser durch die Implementierung definierte Typ verfügt über die folgenden zugänglichen Member, die kombiniert werden können:
Member | Memberart | Zweck |
---|---|---|
Archivieren | Enumerationskonstante | Der Archivstatus der Datei. Anwendungen verwenden dieses Attribut, um Dateien für die Sicherung oder Entfernung zu markieren. |
Compressed | Enumerationskonstante | Die Datei ist komprimiert. |
Gerät | Für die zukünftige Verwendung reserviert. | |
Verzeichnis | Enumerationskonstante | Die Datei ist ein Verzeichnis. |
Verschlüsselt | Enumerationskonstante | Die Datei oder das Verzeichnis ist verschlüsselt. Bei einer Datei bedeutet dies, dass alle Daten in der Datei verschlüsselt sind. Bei einem Verzeichnis bedeutet dies, dass neu erstellte Dateien und Verzeichnisse standardmäßig verschlüsselt werden. |
Ausgeblendet | Enumerationskonstante | Die Datei ist versteckt und daher nicht in einer normalen Verzeichnisliste enthalten. |
Normal | Enumerationskonstante | Die Datei entspricht der Norm und weist keine weiteren Attribute auf. Dieses Attribut ist nur gültig, wenn es allein verwendet wird. |
NotContentIndexed | Enumerationskonstante | Die Datei wird nicht vom Inhaltsindexdienst des Betriebssystems indiziert. |
Offline | Enumerationskonstante | Die Datei ist eine Offlinedatei. Die Daten der Datei sind nicht sofort verfügbar. |
ReadOnly | Enumerationskonstante | Die Datei ist schreibgeschützt. |
ReparsePoint | Enumerationskonstante | Die Datei enthält einen Analysepunkt. Dies ist ein Block mit benutzerdefinierten Daten, die mit einer Datei oder einem Verzeichnis verknüpft sind. |
SparseFile | Enumerationskonstante | Die Datei ist eine Datei mit geringer Dichte. Sparsedateien sind normalerweise große Dateien, deren Daten hauptsächlich aus Nullen bestehen. |
System | Enumerationskonstante | Die Datei ist eine Systemdatei. Die Datei ist Teil des Betriebssystems oder wird ausschließlich durch das Betriebssystem verwendet. |
Temporäre Prozeduren | Enumerationskonstante | Die Datei ist temporär. Dateisysteme versuchen alle Daten für einen schnelleren Zugriff im Speicher zu behalten, anstatt diese zurück in den Massenspeicher zu entleeren. Eine temporäre Datei sollte von der Anwendung gelöscht werden, sobald sie nicht mehr benötigt wird. |
In PowerShell lautet dieser Typ „System.IO.FileAttributes“ mit dem Attribut „FlagsAttribute“.
4.2.6.4 Typ für Optionen regulärer Ausdrücke
Dieser durch die Implementierung definierte Typ verfügt über die folgenden zugänglichen Member, die kombiniert werden können:
Member | Memberart | Zweck |
---|---|---|
IgnoreCase | Enumerationskonstante | Gibt an, dass beim Abgleich die Groß-/Kleinschreibung nicht beachtet wird. |
Keine | Enumerationskonstante | Gibt an, dass keine Optionen festgelegt wurden. |
Eine Implementierung kann andere Werte bereitstellen.
In PowerShell lautet dieser Typ System.Text.RegularExpressions.RegexOptions
mit dem Attribut FlagsAttribute
. Die folgenden zusätzlichen Werte sind definiert: Compiled
, CultureInvariant
, ECMAScript
, ExplicitCapture
, IgnorePatternWhitespace
, Multiline
, RightToLeft
, Singleline
.
4.3 Verweistypen
4.3.1 Zeichenfolgen
Ein Zeichenfolgenwert verfügt über den Typ „string“ und ist eine unveränderliche Sequenz von null oder mehr Zeichen vom Typ „char“, die jeweils einen mit UTF-16 codierten 16-Bit-Unicode-Codepunkt enthalten.
Der Typ „string“ umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Länge | Instanzeigenschaft | int (schreibgeschützt) | Ruft die Anzahl der Zeichen in der Zeichenfolge ab. |
ToLower | Instanzmethode | Zeichenfolge | Erstellt eine neue Zeichenfolge, die die Entsprechung in Kleinbuchstaben enthält. |
ToUpper | Instanzmethode | Zeichenfolge | Erstellt eine neue Zeichenfolge, die die Entsprechung in Großbuchstaben enthält. |
In PowerShell wird string
System.String
zugeordnet.
4.3.2 Arrays
Alle Arraytypen werden vom Typ Array
abgeleitet. Dieser Typ umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Länge | Instanzeigenschaft (schreibgeschützt) | INT | Anzahl von Elementen im Array. |
Rang | Instanzeigenschaft (schreibgeschützt) | INT | Anzahl von Dimensionen im Array. |
Kopieren | Statische Methode | void/siehe Spalte „Zweck“ | Kopiert einen Bereich von Elementen aus einem Array in ein anderes. Es gibt vier Versionen, wobei Quelle das Quellarray, Ziel das Zielarray, Anzahl die Anzahl der zu kopierenden Elemente und Quellindex bzw. Zielindex die Startpunkte in den jeweiligen Arrays darstellen: Copy(Quelle, Ziel, int Anzahl) |
GetLength | Instanzmethode (schreibgeschützt) | int/none | Anzahl von Elementen in einer bestimmten Dimension. GetLength(int dimension) |
Weitere Informationen zu Arrays finden Sie unter §9.
In PowerShell wird Array
System.Array
zugeordnet.
4.3.3 Hashtabellen
Der Typ „Hashtabelle“ umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Anzahl | Instanzeigenschaft | INT | Ruft die Anzahl von Schlüssel-Wert-Paaren in der Hashtabelle ab. |
Schlüssel | Instanzeigenschaft | Durch die Implementierung definiert | Ruft eine Auflistung aller Schlüssel ab. |
Werte | Instanzeigenschaft | Durch die Implementierung definiert | Ruft eine Auflistung aller Werte ab. |
Entfernen | Instanzmethode | void/none | Entfernt den angegebenen Schlüssel/Wert. |
Weitere Informationen zu Hashtabellen finden Sie unter §10.
In PowerShell wird Hashtable
System.Collections.Hashtable
zugeordnet. Hashtable
-Elemente werden in einem Objekt vom Typ DictionaryEntry
gespeichert, und die von „Keys“ und „Values“ zurückgegebenen Auflistungen weisen den Typ ICollection
auf.
4.3.4 Der XML-Typ
Der Typ „XML“ implementiert DOM (Dokumentobjektmodell) Level 1 Core und DOM Level 2 Core des W3C. Das DOM ist eine Strukturdarstellung eines XML-Dokuments im Arbeitsspeicher (Cache) und ermöglicht die Navigation und Bearbeitung dieses Dokuments. Dieser Typ unterstützt den Subscript-Operator [] (§7.1.4.4).
In PowerShell wird xml
System.Xml.XmlDocument
zugeordnet.
4.3.5 Der regex-Typ
Der Typ regex
stellt die Ausrüstung zur Unterstützung der Verarbeitung regulärer Ausdrücke bereit. Er wird verwendet, um den Typ eines Parameters (§5.3) einzuschränken, dessen entsprechendes Argument einen regulären Ausdruck enthalten kann.
In PowerShell wird regex
System.Text.RegularExpressions.Regex
zugeordnet.
4.3.6 Der ref-Typ
Normalerweise werden Argumente nach Wert an Befehle übergeben. Falls ein Argument einen Werttyp aufweist, wird eine Kopie des Werts übergeben. Falls ein Argument einen Verweistyp aufweist, wird eine Kopie des Verweises übergeben.
Der Typ „ref“ bietet die notwendige Ausrüstung, um Argumente durch Verweis an Befehle zu übergeben, sodass die Befehle den Wert des Arguments ändern können. Der Typ „ref“ umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Wert | Instanzeigenschaft (Lese-/Schreibzugriff) | Der Typ des Werts, auf den verwiesen wird. | Ruft den Wert ab, auf den verwiesen wird, oder legt ihn fest. |
Betrachten Sie die folgende Funktionsdefinition und den entsprechenden 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
Betrachten Sie den Fall, in dem $number auf einen Typ beschrä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 als ref
deklariert werden.
In PowerShell wird ref
System.Management.Automation.PSReference
zugeordnet.
4.3.7 Der scriptblock-Typ
Der Typ scriptblock
stellt einen vorkompilierten Block von Skripttext (§7.1.8) dar, der als einzelne Einheit verwendet werden kann. Er umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Attribute | Instanzeigenschaft (schreibgeschützt) | Auflistung von Attributen | Ruft die Attribute des Skriptblocks ab. |
Datei | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Ruft den Namen der Datei ab, in der der Skriptblock definiert ist. |
Modul | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert ([§4.5.12][§4.5.12]) | Ruft Informationen über das Modul ab, in dem der Skriptblock definiert ist. |
GetNewClosure | für eine Instanzmethode | scriptblock /none |
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. |
Invoke | für eine Instanzmethode | Auflistung von object/object[] | Ruft den Skriptblock mit den angegebenen Argumenten auf und gibt die Ergebnisse zurück. |
InvokeReturnAsIs | für eine Instanzmethode | object/object[] | Ruft den Skriptblock mit den angegebenen Argumenten auf und gibt ggf. generierte Objekte zurück. |
Erstellen | für eine statische Methode | scriptblock /string |
Erstellt ein neues scriptblock-Objekt, das das angegebene Skript enthält. |
In PowerShell wird scriptblock
System.Management.Automation.ScriptBlock
zugeordnet. Invoke
gibt eine Auflistung von PsObject
zurück.
4.3.8 Der math-Typ
Der Typ math
bietet Zugriff auf einige Konstanten und Methoden, die in mathematischen Berechnungen nützlich sind. Er umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
E | Statische Eigenschaft (schreibgeschützt) | double | Basis des natürlichen Logarithmus. |
PI | Statische Eigenschaft (schreibgeschützt) | double | Verhältnis zwischen Umfang und Durchmesser eines Kreises. |
Abs | für eine statische Methode | numeric/numeric | Absoluter Wert (der Rückgabetyp entspricht dem Typ des übergebenen Arguments). |
Acos | für eine statische Methode | double/double | Winkel, dessen Kosinus der angegebenen Zahl entspricht. |
Asin | für eine statische Methode | double/double | Winkel, dessen Sinus der angegebenen Zahl entspricht. |
Atan | für eine statische Methode | double/double | Winkel, dessen Tangens der angegebenen Zahl entspricht. |
Atan2 | für eine statische Methode | double/double y, double x | Winkel, dessen Tangens dem Quotienten aus zwei angegebenen Zahlen x und y entspricht. |
Ceiling | für eine statische Methode | decimal/decimal double/double |
Kleinste ganze Zahl, die größer oder gleich der angegebenen Zahl ist. |
Cos | für eine statische Methode | double/double | Kosinus des angegebenen Winkels. |
Cosh | für eine statische Methode | double/double | Kosinus Hyperbolicus des angegebenen Winkels. |
Exp | für eine statische Methode | double/double | e potenziert mit der angegebenen Zahl |
Etage | für eine statische Methode | decimal/decimal double/double |
Größte ganze Zahl, die kleiner oder gleich der angegebenen Zahl ist. |
Log | für eine statische Methode | double/double Zahl double/double Zahl, double Basis |
Logarithmus der Zahl zur Basis e oder Basis. |
Log10 | für eine statische Methode | double/double | Logarithmus einer angegebenen Zahl zur Basis 10 |
Max | für eine statische Methode | numeric/numeric | Die größere von zwei angegebenen Zahlen (der Rückgabetyp entspricht dem Typ der übergebenen Argumente). |
Min | für eine statische Methode | numeric/numeric, numeric | Die kleinere von zwei angegebenen Zahlen (der Rückgabetyp entspricht dem Typ der übergebenen Argumente). |
Pow | für eine statische Methode | double/double x, double y | Eine angegebene Zahl x potenziert mit dem angegebenen Wert y. |
Sin | für eine statische Methode | double/double | Sinus des angegebenen Winkels. |
Sinh | für eine statische Methode | double/double | Sinus Hyperbolicus des angegebenen Winkels. |
Sqrt | für eine statische Methode | double/double | Quadratwurzel einer angegebenen Zahl. |
Tan | für eine statische Methode | double/double | Tangens des angegebenen Winkels. |
Tanh | für eine statische Methode | double/double | Tangens Hyperbolicus des angegebenen Winkels. |
In PowerShell wird Math
System.Math
zugeordnet.
4.3.9 Der ordered-Typ
Der Typ ordered
ist ein Pseudotyp, der nur für Konvertierungen verwendet wird.
4.3.10 Der pscustomobject-Typ
Der Typ pscustomobject
ist ein Pseudotyp, der nur für Konvertierungen verwendet wird.
4.4 Generische Typen
Eine Reihe von Programmiersprachen und Umgebungen stellen Typen bereit, die spezialisiert werden können. Viele dieser Typen werden als Containertypen bezeichnet, weil Instanzen von ihnen Objekte eines anderen Typs enthalten können. Betrachten Sie beispielsweise den Typ „Stapel“, der einen Stapel von Werten darstellen kann, die per Push hinzugefügt oder per Pop entfernt werden können. In der Regel möchte der Benutzer eines Stapels nur eine Art von Objekt in diesem Stapel speichern. Wenn die Sprache oder Umgebung jedoch keine Typspezialisierung unterstützt, müssen mehrere unterschiedliche Varianten des Typs „Stapel“ implementiert werden, obwohl alle dieselbe Aufgabe nur mit unterschiedlichen Typelementen ausführen.
Durch die Typspezialisierung kann ein generischer Typ so implementiert werden, dass er bei Verwendung auf die Verarbeitung einer Teilmenge von Typen beschränkt werden kann. Beispiel:
- Ein generischer Stapeltyp, der auf Zeichenfolgen spezialisiert ist, kann folgendermaßen geschrieben werden:
Stack[string]
. - Ein generischer Wörterbuchtyp, der auf int-Schlüssel mit zugeordneten Zeichenfolgenwerten spezialisiert ist, kann folgendermaßen geschrieben werden:
Dictionary[int,string]
. - Ein Stapel eines Stapels aus Zeichenfolgen kann folgendermaßen geschrieben werden:
Stack[Stack[string]]
.
PowerShell definiert keine integrierten generischen Typen, kann diese jedoch verwenden, wenn sie von der Hostumgebung bereitgestellt werden. Informationen zur Syntax finden Sie unter §7.1.10.
Der vollständige Name für den oben vorgeschlagenen Typ Stack[string]
lautet System.Collections.Generic.Stack[string]
. Der vollständige Name für den oben vorgeschlagenen Typ Dictionary[int,string]
lautet 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 Member, die für Skripts zugänglich sind. Der tatsächliche Name dieser Typen muss jedoch nicht angegeben werden, solange die zugänglichen Member so angegeben werden, dass sie verwendet werden können. Demzufolge können Skripts Objekte dieser Typen speichern und auf ihre Member zugreifen, ohne die Namen dieser Typen zu kennen. In den folgenden Unterabschnitten werden diese Typen beschrieben.
4.5.1 Typ zur Anbieterbeschreibung
Dieser Typ kapselt den Zustand eines Anbieters. Er umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Laufwerke | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert (§4.5.2) | Eine Auflistung von Laufwerkbeschreibungsobjekten |
Name | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der Name des Anbieters. |
In PowerShell heißt dieser Typ System.Management.Automation.ProviderInfo
.
4.5.2 Typ zur Laufwerkbeschreibung
Dieser Typ kapselt den Zustand eines Laufwerks. Er umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
CurrentLocation | Instanzeigenschaft (Lese-/Schreibzugriff) | Zeichenfolge | Der aktuelle Betriebsort (§3.1.4) des Laufwerks. |
BESCHREIBUNG | Instanzeigenschaft (Lese-/Schreibzugriff) | Zeichenfolge | Die Beschreibung des Laufwerks. |
Name | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der Name des Laufwerks. |
Root | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der Name des Laufwerks. |
In PowerShell heißt dieser Typ System.Management.Automation.PSDriveInfo
.
4.5.3 Typ zur Variablenbeschreibung
Dieser Typ kapselt den Zustand einer Variablen. Er umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Attribute | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert | Eine Auflistung von Attributen. |
BESCHREIBUNG | Instanzeigenschaft (Lese-/Schreibzugriff) | Zeichenfolge | Die Beschreibung, die der Variablen über das Cmdlet New-Variable oder Set-Variable zugewiesen wird. |
Modul | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert (§4.5.12) | Das Modul, aus dem diese Variable exportiert wurde. |
ModuleName | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Das Modul, in dem diese Variable definiert wurde. |
Name | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der Name, der der Variablen bei ihrer Erstellung in der PowerShell-Sprache oder über die Cmdlets New-Variable und Set-Variable zugewiesen wurde. |
Optionen | Instanzeigenschaft (Lese-/Schreibzugriff) | Zeichenfolge | Die Optionen, die der Variablen über die Cmdlets New-Variable und Set-Variable zugewiesen wurden. |
Wert | Instanzeigenschaft (Lese-/Schreibzugriff) | Objekt (object) | Der Wert, der der Variablen bei ihrer Erstellung in der PowerShell-Sprache oder über die Cmdlets New-Variable und Set-Variable zugewiesen wurde. |
In PowerShell heißt dieser Typ System.Management.Automation.PSVariable
.
Windows PowerShell: Der Typ der Attributauflistung lautet System.Management.Automation.PSVariableAttributeCollection.
4.5.4 Typ zur Aliasbeschreibung
Dieser Typ kapselt den Zustand eines Alias. Er umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
CommandType | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert | Sollte „Alias“ entsprechen. |
Definition | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der Befehl oder Alias, dem der Alias über die Cmdlets New-Alias oder Set-Alias zugewiesen wurde. |
BESCHREIBUNG | Instanzeigenschaft (Lese-/Schreibzugriff) | Zeichenfolge | Die Beschreibung, die dem Alias über das Cmdlet New-Alias oder Set-Alias zugewiesen wurde. |
Modul | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert (§4.5.12) | Das Modul, aus dem dieser Alias exportiert wurde. |
ModuleName | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Das Modul, in dem dieser Alias definiert wurde. |
Name | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der Name, der dem Alias bei seiner Erstellung über das Cmdlet New-Alias oder Set-Alias zugewiesen wurde. |
Optionen | Instanzeigenschaft (Lese-/Schreibzugriff) | Zeichenfolge | Die Optionen, die dem Alias über das Cmdlet New-Alias oder Set-Alias zugewiesen wurden. |
OutputType | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definierte Auflistung | Gibt die Typen der Werte an, die von dem Befehl ausgegeben werden, auf den der Alias verweist. |
Parameter | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definierte Auflistung | Die Parameter des Befehls. |
ParameterSets | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definierte Auflistung | Informationen zu den Parametersätzen, die dem Befehl zugeordnet sind. |
ReferencedCommand | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert | Informationen zu dem Befehl, auf den dieser Alias direkt verweist. |
ResolvedCommand | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert | Informationen zu dem Befehl, in den der Alias schließlich aufgelöst wird. |
In PowerShell heißt dieser Typ System.Management.Automation.AliasInfo
.
4.5.5 Typ zur Beschreibung des Betriebsorts
Dieser Typ kapselt den Zustand eines Betriebsorts. Er umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Laufwerk | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert (§4.5.2) | Ein Laufwerkbeschreibungsobjekt. |
Pfad | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der Betriebsort. |
Anbieter | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert (§4.5.1) | Der Anbieter. |
ProviderPath | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der aktuelle Pfad des Anbieters. |
Ein Stapel von Betriebsorten ist eine Auflistung von Betriebsortobjekten, wie oben beschrieben.
In PowerShell wird ein aktueller Betriebsort durch ein Objekt vom Typ System.Management.Automation.PathInfo
dargestellt. Ein Stapel von Betriebsorten wird durch ein Objekt vom Typ System.Management.Automation.PathInfoStack
dargestellt, bei dem es sich um eine Auflistung von PathInfo
-Objekten handelt.
4.5.6 Typ zur Beschreibung von Umgebungsvariablen
Dieser Typ kapselt den Zustand einer Umgebungsvariablen. Er umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Name | Instanzeigenschaft (Lese-/Schreibzugriff) | Zeichenfolge | Der Name der Umgebungsvariablen. |
Wert | Instanzeigenschaft (Lese-/Schreibzugriff) | Zeichenfolge | Der Wert der Umgebungsvariablen. |
In PowerShell heißt dieser Typ System.Collections.DictionaryEntry
. Der Name der Variablen ist der Wörterbuchschlüssel. Der Wert der Umgebungsvariablen ist der Wörterbuchwert. Name ist eine AliasProperty
, die dem Schlüssel Key entspricht.
4.5.7 Typ zur Anwendungsbeschreibung
Dieser Typ kapselt den Zustand einer Anwendung. Er umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
CommandType | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert | Sollte „Application“ entsprechen. |
Definition | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Eine Beschreibung der Anwendung. |
Durchwahl | Instanzeigenschaft (Lese-/Schreibzugriff) | Zeichenfolge | Die Erweiterung der Anwendungsdatei. |
Modul | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert (§4.5.12) | Das Modul, das diesen Befehl definiert. |
ModuleName | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der Name des Moduls, das den Befehl definiert. |
Name | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der Name des Befehls. |
OutputType | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definierte Auflistung | Gibt die Typen der Werte an, die vom Befehl ausgegeben werden. |
Parameter | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definierte Auflistung | Die Parameter des Befehls. |
ParameterSets | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definierte Auflistung | Informationen zu den Parametersätzen, die dem Befehl zugeordnet sind. |
Pfad | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Ruft den Pfad der Anwendungsdatei ab. |
In PowerShell heißt dieser Typ System.Management.Automation.ApplicationInfo
.
4.5.8 Typ zur Cmdlet-Beschreibung
Dieser Typ kapselt den Zustand eines Cmdlets. Er umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
CommandType | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert | Sollte „Cmdlet“ entsprechen. |
DefaultParameterSet | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert | Der Standardparametersatz, der verwendet wird, wenn PowerShell anhand der angegebenen Argumente nicht bestimmen kann, welcher Parametersatz verwendet werden soll. |
Definition | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Eine Beschreibung des Cmdlets. |
HelpFile | Instanzeigenschaft (Lese-/Schreibzugriff) | Zeichenfolge | 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) | Durch die Implementierung definiert (§4.5.12) | Das Modul, das dieses Cmdlet definiert. |
ModuleName | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der Name des Moduls, das das Cmdlet definiert. |
Name | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der Name des Cmdlets. |
Nomen | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der Substantivname des Cmdlets. |
OutputType | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definierte Auflistung | Gibt die Typen der Werte an, die vom Cmdlet ausgegeben werden. |
Parameter | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definierte Auflistung | Die Parameter des Cmdlets. |
ParameterSets | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definierte Auflistung | Informationen zu den Parametersätzen, die dem Cmdlet zugeordnet sind. |
Verb | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | 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 heißt dieser Typ System.Management.Automation.CmdletInfo
.
4.5.9 Typ zur Beschreibung externer Skripts
Dieser Typ kapselt den Zustand eines externen Skripts (eines Skripts, das direkt von PowerShell ausführbar, aber nicht darin integriert ist). Er umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
CommandType | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert | Sollte „ExternalScript“ entsprechen. |
Definition | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Eine Definition des Skripts. |
Modul | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert (§4.5.12) | Das Modul, das dieses Skript definiert. |
ModuleName | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der Name des Moduls, das das Skript definiert. |
Name | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der Name des Skripts. |
OriginalEncoding | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert | Die ursprüngliche Codierung, die zum Konvertieren der Zeichen des Skripts in Bytes verwendet wird. |
OutputType | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definierte Auflistung | Gibt die Typen der Werte an, die vom Skript ausgegeben werden. |
Parameter | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definierte Auflistung | Die Parameter des Skripts. |
ParameterSets | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definierte Auflistung | Informationen zu den Parametersätzen, die dem Skript zugeordnet sind. |
Pfad | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der Pfad zur Skriptdatei. |
ScriptBlock | Instanzeigenschaft (schreibgeschützt) | scriptblock | Das externe Skript. |
ScriptContents | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der ursprüngliche Inhalt des Skripts. |
In PowerShell heißt dieser Typ System.Management.Automation.ExternalScriptInfo
.
4.5.10 Typ zur Funktionsbeschreibung
Dieser Typ kapselt den Zustand einer Funktion. Er umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
CmdletBinding | Instanzeigenschaft (schreibgeschützt) | bool | Gibt an, ob die Funktion dieselbe Parameterbindung verwendet, die von kompilierten Cmdlets verwendet wird (siehe §12.3.5). |
CommandType | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert | Kann auf Gleichheit mit „Function“ oder „Filter“ verglichen werden, um festzustellen, welchem dieser Elemente dieses Objekt entspricht. |
DefaultParameterSet | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Gibt den Parametersatz an, der verwendet werden soll, wenn er nicht anhand der Argumente ermittelt werden kann (siehe §12.3.5). |
Definition | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Eine Zeichenfolgenversion von ScriptBlock. |
BESCHREIBUNG | Instanzeigenschaft (Lese-/Schreibzugriff) | Zeichenfolge | Die Beschreibung der Funktion. |
Modul | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert (§4.5.12) | Das Modul, aus dem diese Funktion exportiert wurde. |
ModuleName | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Das Modul, in dem diese Funktion definiert wurde. |
Name | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | 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) | Durch die Implementierung definierte Auflistung | Gibt die Typen der ausgegebenen Werte in der entsprechenden Reihenfolge an (siehe §12.3.6). |
Parameter | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definierte Auflistung | Gibt die Parameternamen in der entsprechenden Reihenfolge an. Wenn die Funktion wie ein Cmdlet fungiert (siehe „CmdletBinding“ weiter oben), werden die allgemeinen Parameter am Ende der Auflistung aufgeführt. |
ParameterSets | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definierte Auflistung | Informationen zu den Parametersätzen, die dem Befehl zugeordnet sind. Für jeden Parameter zeigt das Ergebnis den Parameternamen und -typ an und weist darauf hin, ob der Parameter obligatorisch, positionell oder ein Switch-Parameter ist. Wenn die Funktion wie ein Cmdlet fungiert (siehe „CmdletBinding“ weiter oben), werden die allgemeinen Parameter am Ende der Auflistung aufgeführt. |
ScriptBlock | Instanzeigenschaft (schreibgeschützt) | scriptblock (§4.3.6) | Der Text der Funktion. |
In PowerShell heißt dieser Typ System.Management.Automation.FunctionInfo
.
CommandType
weist den TypSystem.Management.Automation.CommandTypes
auf.Options
weist den TypSystem.Management.Automation.ScopedItemOptions
auf.OutputType
weist den TypSystem.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.PSTypeName,System.Management.Automation]]
auf.Parameters
weist den TypSystem.Collections.Generic.Dictionary``2[[System.String,mscorlib],[System.Management.Automation.ParameterMetadata,System.Management.Automation]]
auf.ParameterSets
weist den TypSystem.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.CommandParameterSetInfo,System.Management.Automation]]
auf.- Visibility weist den Typ
System.Management.Automation.SessionStateEntryVisibility
auf. - PowerShell verfügt ebenfalls über eine Eigenschaft namens Visibility.
4.5.11 Typ zur Filterbeschreibung
Dieser Typ kapselt den Zustand eines Filters. Er verfügt über die gleiche Menge zugänglicher Member wie der Funktionsbeschreibungstyp (§4.5.10).
In PowerShell heißt dieser Typ System.Management.Automation.FilterInfo
. Er verfügt über die gleiche Menge von Eigenschaften wie System.Management.Automation.FunctionInfo
(§4.5.11).
4.5.12 Typ zur Modulbeschreibung
Dieser Typ kapselt den Zustand eines Moduls. Er umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
BESCHREIBUNG | Instanzeigenschaft (Lese-/Schreibzugriff) | Zeichenfolge | 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) | Zeichenfolge | Der Name des Moduls. |
Pfad | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Der Pfad des Moduls. |
In PowerShell heißt dieser Typ System.Management.Automation.PSModuleInfo
. Der Typ von ModuleType
lautet System.Management.Automation.ModuleType
.
4.5.13 Typ zur Beschreibung benutzerdefinierter Objekte
Dieser Typ kapselt den Zustand eines benutzerdefinierten Objekts. Er verfügt über keine zugänglichen Member.
In PowerShell heißt dieser Typ System.Management.Automation.PSCustomObject
. Die Cmdlets Import-Module
und New-Object
können ein Objekt dieses Typs generieren.
4.5.14 Typ zur Befehlsbeschreibung
Die automatische Variable $PsCmdlet
ist ein Objekt zur Darstellung des Cmdlets oder der Funktion, das bzw. die ausgeführt wird. Der Typ dieses Objekts wird durch die Implementierung definiert. Er verfügt über die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
ParameterSetName | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Name des aktuellen Parametersatzes (siehe ParameterSetName). |
ShouldContinue | für eine Instanzmethode | Überlastung /bool |
Fordert die Bestätigung eines Vorgangs vom Benutzer an. |
ShouldProcess | für eine Instanzmethode | Überlastung /bool |
Fordert eine Bestätigung vom Benutzer an, bevor ein Vorgang ausgeführt wird. |
In PowerShell heißt dieser Typ „System.Management.Automation.PSScriptCmdlet“.
4.5.15 Typ zur Beschreibung des Fehlerdatensatzes
Die automatische Variable $Error
enthält eine Auflistung von Fehlerdatensätzen, die aktuelle Fehler darstellen (§3.12). Obwohl der Typ dieser Auflistung nicht spezifiziert ist, unterstützt sie Subscripting, um Zugriff auf einzelne Fehlerdatensätze zu erhalten.
In PowerShell lautet der Auflistungstyp System.Collections.ArrayList
. Der Typ eines einzelnen Fehlerdatensatzes in der Auflistung lautet System.Management.Automation.ErrorRecord
. Dieser Typ weist die folgenden öffentlichen Eigenschaften auf:
- CategoryInfo: Ruft Informationen zur Kategorie des Fehlers ab.
- ErrorDetails: Ruft ausführlichere Fehlerinformationen ab, z. B. eine Ersetzungsfehlermeldung, und legt diese fest.
- Exception: Ruft die Ausnahme ab, die diesem Fehlerdatensatz zugeordnet ist.
- FullyQualifiedErrorId: Ruft den vollqualifizierten Fehlerbezeichner für diesen Fehlerdatensatz ab.
- InvocationInfo: Ruft Informationen zu dem Befehl ab, der aufgerufen wurde, als der Fehler aufgetreten ist.
- PipelineIterationInfo: Ruft den Status ab, den die Pipeline bei Erstellung dieses Fehlerdatensatzes aufwies.
- TargetObject: Ruft das Objekt ab, das bei Auftreten des Fehlers verarbeitet wurde.
4.5.16 Typ zur Enumeratorbeschreibung
Eine Reihe von Variablen sind Enumeratoren für Auflistungen (§4). Die automatische Variable $foreach
ist der Enumerator, der für foreach
-Anweisungen erstellt wurde. Die automatische Variable $input
ist der Enumerator für eine Auflistung, die an eine Funktion aus der Pipeline übermittelt wurde. Die automatische Variable $switch
ist der Enumerator, der für switch
-Anweisungen erstellt wurde.
Der Typ eines Enumerators wird durch die Implementierung definiert. Er verfügt über die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Aktuell | Instanzeigenschaft (schreibgeschützt) | Objekt (object) | Ruft das aktuelle Element in der Auflistung ab. Wenn der Enumerator derzeit nicht an einem Element der Auflistung positioniert ist, wird das Verhalten durch die Implementierung definiert. |
MoveNext | für eine Instanzmethode | None/bool | Setzt den Enumerator auf das nächste Element der Auflistung. Gibt $true zurück, wenn der Enumerator erfolgreich auf das nächste Element gesetzt wurde. Gibt $false zurück, wenn der Enumerator das Ende der Auflistung überschritten hat. |
In PowerShell werden diese Member in der Schnittstelle System.IEnumerator
definiert, 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 $foreach
lautet dieser Typ System.Array+SZArrayEnumerator
. Für $input
lautet dieser Typ System.Collections.ArrayList+ArrayListEnumeratorSimple
. Für $switch
lautet dieser Typ System.Array+SZArrayEnumerator
.
4.5.17 Typ zur Verzeichnisbeschreibung
Das Cmdlet New-Item kann Elemente verschiedener Art erstellen, einschließlich FileSystem-Verzeichnissen. Der Typ eines Verzeichnisbeschreibungsobjekts wird durch die Implementierung definiert. Er verfügt über die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Attribute | Instanzeigenschaft (Lese-/Schreibzugriff) | Durch die Implementierung definiert (§4.2.6.3) | Ruft mindestens eines der Attribute des Verzeichnisobjekts ab oder legt dieses fest. |
CreationTime | Instanzeigenschaft (Lese-/Schreibzugriff) | Durch die Implementierung definiert (§4.5.19) | Ruft die Erstellungszeit des Verzeichnisobjekts ab und legt sie fest. |
Durchwahl | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Ruft den Erweiterungsteil des Verzeichnisnamens ab. |
FullName | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Ruft den vollständigen Pfad des Verzeichnisses ab. |
LastWriteTime | Instanzeigenschaft (Lese-/Schreibzugriff) | Durch die Implementierung definiert (§4.5.19) | Ruft den Zeitpunkt des letzten Schreibzugriffs auf das Verzeichnis ab oder legt ihn fest. |
Name | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Ruft den Namen des Verzeichnisses ab. |
In PowerShell heißt dieser Typ System.IO.DirectoryInfo
. Der Typ der Eigenschaft Attributes lautet System.IO.FileAttributes
.
4.5.18 Typ zur Dateibeschreibung
Das Cmdlet New-Item
kann Elemente verschiedener Art erstellen, einschließlich FileSystem-Dateien. Der Typ eines Dateibeschreibungsobjekts wird durch die Implementierung definiert. Er verfügt über die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Attribute | Instanzeigenschaft (Lese-/Schreibzugriff) | Durch die Implementierung definiert (§4.2.6.3) | Ruft mindestens eines der Attribute des Dateiobjekts ab oder legt dieses fest. |
BaseName | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Ruft den Namen der Datei ohne die Erweiterung ab. |
CreationTime | Instanzeigenschaft (Lese-/Schreibzugriff) | Durch die Implementierung definiert (§4.5.19) | Ruft die Erstellungszeit des Dateiobjekts ab und legt sie fest. |
Durchwahl | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Ruft den Erweiterungsteil des Dateinamens ab. |
FullName | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Ruft den vollständigen Pfad der Datei ab. |
LastWriteTime | Instanzeigenschaft (Lese-/Schreibzugriff) | Durch die Implementierung definiert (§4.5.19) | Ruft den Zeitpunkt des letzten Schreibzugriffs auf die Datei ab oder legt ihn fest. |
Länge | Instanzeigenschaft (schreibgeschützt) | long | Ruft die Größe der Datei in Byte ab. |
Name | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Ruft den Namen der Datei ab. |
VersionInfo | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert | Windows PowerShell: Diese ScriptProperty gibt „System.Diagnostics.FileVersionInfo“ für die Datei zurück. |
In PowerShell heißt dieser Typ System.IO.FileInfo
.
4.5.19 Typ zur Beschreibung von „Date-Time“
Der Typ eines Beschreibungsobjekts für Datum und Uhrzeit wird durch die Implementierung definiert. Er verfügt über die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Tag | Instanzeigenschaft (schreibgeschützt) | INT | Ruft die Komponente für den Tag des Monats ab, der durch diese Instanz dargestellt wird. |
Stunde | Instanzeigenschaft (schreibgeschützt) | INT | Ruft die Komponente für die Stunden des Datums ab, das durch diese Instanz dargestellt wird. |
Minute | Instanzeigenschaft (schreibgeschützt) | INT | Ruft die Komponente für die Minuten des Datums ab, das durch diese Instanz dargestellt wird. |
Month (Monat) | Instanzeigenschaft (schreibgeschützt) | INT | Ruft die Komponente für den Monat des Datums ab, das durch diese Instanz dargestellt wird. |
Second | Instanzeigenschaft (schreibgeschützt) | INT | Ruft die Komponente für die Sekunden des Datums ab, das durch diese Instanz dargestellt wird. |
Year | Instanzeigenschaft (schreibgeschützt) | INT | Ruft die Komponente für das Jahr des Datums ab, das durch diese Instanz dargestellt wird. |
Ein Objekt dieses Typs kann mit dem Cmdlet Get-Date erstellt werden.
In PowerShell heißt dieser Typ System.DateTime
.
4.5.20 Typ zur Beschreibung von „Group-Info“
Der Typ eines Beschreibungsobjekts group-info wird durch die Implementierung definiert. Er verfügt über die folgenden zugänglichen Member:
Member | Memberart | type | Zweck |
---|---|---|---|
Anzahl | Instanzeigenschaft (schreibgeschützt) | INT | Ruft die Anzahl von Elementen in der Gruppe ab. |
Group | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definierte Auflistung | Ruft die Elemente der Gruppe ab. |
Name | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Ruft den Namen der Gruppe ab. |
Werte | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definierte Auflistung | Ruft die Werte der Elemente in der Gruppe ab. |
Ein Objekt dieses Typs kann mit dem Cmdlet Group-Object erstellt werden.
In PowerShell heißt dieser Typ Microsoft.PowerShell.Commands.GroupInfo
.
4.5.21 Typ zur Beschreibung von „Generic-Measure-Info“
Der Typ eines Beschreibungsobjekts generic-measure-info wird durch die Implementierung definiert. Er verfügt über die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Average | Instanzeigenschaft (schreibgeschützt) | double | Ruft den Durchschnitt der Werte der gemessenen Eigenschaften ab. |
Anzahl | Instanzeigenschaft (schreibgeschützt) | INT | Ruft die Anzahl der Objekte mit den angegebenen Eigenschaften ab. |
Maximum | Instanzeigenschaft (schreibgeschützt) | double | Ruft den Höchstwert der angegebenen Eigenschaften ab. |
Minimum | Instanzeigenschaft (schreibgeschützt) | double | Ruft den Mindestwert der angegebenen Eigenschaften ab. |
Eigenschaft | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Ruft die zu messende Eigenschaft ab. |
SUM | Instanzeigenschaft (schreibgeschützt) | double | Ruft die Summe der Werte der angegebenen Eigenschaften ab. |
Ein Objekt dieses Typs kann mit dem Cmdlet Measure-Object erstellt werden.
In PowerShell heißt dieser Typ Microsoft.PowerShell.Commands.GenericMeasureInfo
.
4.5.22 Typ zur Beschreibung von „Text-Measure-Info“
Der Typ eines Beschreibungsobjekts text-info wird durch die Implementierung definiert. Er verfügt über die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Zeichen | Instanzeigenschaft (schreibgeschützt) | INT | Ruft die Anzahl von Zeichen im Zielobjekt ab. |
Linien | Instanzeigenschaft (schreibgeschützt) | INT | Ruft die Anzahl von Zeilen im Zielobjekt ab. |
Eigenschaft | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Ruft die zu messende Eigenschaft ab. |
Words | Instanzeigenschaft (schreibgeschützt) | INT | Ruft die Anzahl von Wörtern im Zielobjekt ab. |
Ein Objekt dieses Typs kann mit dem Cmdlet Measure-Object
erstellt werden.
In PowerShell heißt dieser Typ Microsoft.PowerShell.Commands.TextMeasureInfo
.
4.5.23 Anmeldeinformationstyp
Ein Anmeldeinformationsobjekt kann dann in verschiedenen Sicherheitsvorgängen verwendet werden. Der Typ eines Anmeldeinformationsobjekts wird durch die Implementierung definiert. Er verfügt über die folgenden zugänglichen Member:
Member | Memberart | type | Zweck |
---|---|---|---|
Kennwort | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert | Ruft das Kennwort ab. |
UserName | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Ruft den Benutzernamen ab. |
Ein Objekt dieses Typs kann mit dem Cmdlet Get-Credential erstellt werden.
In PowerShell heißt dieser Typ System.Management.Automation.PSCredential
.
4.5.24 Methodenkennzeichnertyp
Der Typ eines Methodenkennzeichners wird durch die Implementierung definiert. Er verfügt über die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Invoke | für eine Instanzmethode | Objekt-/Variablenanzahl und Typ | Verwendet eine variable Anzahl von Argumenten, ruft indirekt die Methode auf, auf die vom übergeordneten Methodenkennzeichner verwiesen wird, und übergibt dabei die Argumente. |
Ein Objekt dieses Typs kann durch einen Aufrufausdruck, invocation-expression (§7.1.3), erstellt werden.
In PowerShell heißt dieser Typ „System.Management.Automation.PSMethod“.
4.5.25 Memberdefinitionstyp
Dieser Typ kapselt die Definition eines Members. Er umfasst die folgenden zugänglichen Member:
Member | Memberart | Typ | Zweck |
---|---|---|---|
Definition | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Ruft die Definition des Members ab. |
MemberType | Instanzeigenschaft (schreibgeschützt) | Durch die Implementierung definiert | Ruft den PowerShell-Typ des Members ab. |
Name | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Ruft den Namen des Members ab. |
TypName | Instanzeigenschaft (schreibgeschützt) | Zeichenfolge | Ruft den Typnamen des Members ab. |
In PowerShell heißt dieser Typ Microsoft.PowerShell.Commands.MemberDefinition
.
4.6 Erweiterung und Anpassung von Typen
Eine PowerShell-Implementierung umfasst eine Familie von Kerntypen (die in diesem Kapitel dokumentiert sind), die jeweils eine eigene Menge von Basismembern enthalten. Diese Member können Methoden oder Eigenschaften sowie Instanzmember oder statische Member sein. Beispielsweise sind die Basismember des Typs „Zeichenfolge“ (§4.3.1) die Instanzeigenschaft „Length“ und die Instanzmethoden „ToLower“ und „ToUpper“.
Wenn ein Objekt erstellt wird, enthält es alle Instanzeigenschaften des jeweiligen Objekttyps, und die Instanzmethoden dieses Typs können für dieses Objekt aufgerufen werden. Ein Objekt kann zur Laufzeit durch Hinzufügen von Instanzmembern angepasst werden. Das Ergebnis wird als benutzerdefiniertes Objekt bezeichnet. Alle Member, die einer Instanz hinzugefügt werden, sind nur für die Lebensdauer dieser Instanz vorhanden. Andere Instanzen desselben Kerntyps sind davon nicht betroffen.
Die Gruppe der Basismember eines Typs kann durch Hinzufügen der folgenden Arten von Membern erweitert werden:
- angepasste Member über das ETS (Extended Type System) , wobei die meisten Details nicht spezifiziert sind.
- erweiterte Member über das Cmdlet Add-Member.
In PowerShell können erweiterte Member auch über types.ps1xml
-Dateien hinzugefügt werden. Angepasste und erweiterte Member werden zusammen als synthetische Member bezeichnet.
Das ETS fügt allen PowerShell-Objekten die folgenden Member hinzu: psbase, psadapted, psextended und pstypenames. Weitere Informationen zu diesen Membern finden Sie unter den Parametern Force und View im Cmdlet Get-Member.
Ein Instanzmember kann einen erweiterten und/oder angepassten Member desselben Namens ausblenden, und ein erweiterter Member kann einen angepassten Member ausblenden. In solchen Fällen können die Membergruppen psadapted und psextended verwendet werden, um auf diese ausgeblendeten Member zuzugreifen.
Wenn in types.ps1xml
ein Member namens Supports angegeben wird, bietet obj.psextended
Zugriff auf ausschließlich diesen Member und nicht auf einen Member, der über Add-Member
hinzugefügt wurde.
Es gibt drei Möglichkeiten, ein benutzerdefiniertes Objekt mit einem neuen Member „M“ zu erstellen:
Dieser Ansatz kann verwendet werden, um einen oder mehrere NoteProperty-Member hinzuzufügen.
$x = New-Object PsObject -Property @{M = 123}`
Dieser Ansatz kann verwendet werden, um NoteProperty- oder ScriptMethod-Member hinzuzufügen.
$x = New-Module -AsCustomObject {$M = 123 ; Export-ModuleMember --Variable M}`
Dieser Ansatz kann verwendet werden, um eine beliebige Art von Member hinzuzufügen.
$x = New-Object PsObject Add-Member -InputObject $x -Name M -MemberType NoteProperty -Value 123
PsObject
ist der Basistyp aller PowerShell-Typen.