4. Typer

I PowerShell har varje värde en typ och typerna är indelad i en av två huvudkategorier: värdetyper och referenstyper. Överväg typen int, som är typisk för värdetyper. Ett värde av typen int är helt fristående. Alla bitar som behövs för att representera det värdet lagras i det värdet och varje bitmönster i det värdet representerar ett giltigt värde för dess typ. Överväg nu matristypen , som int[]är typisk för referenstyper. Ett så kallat värde för en matristyp kan innehålla antingen en referens till ett objekt som faktiskt innehåller matriselementen eller null-referensen vars värde är $null. Den viktiga skillnaden mellan de två typkategorierna visas bäst av skillnaderna i semantik under tilldelningen. Exempel:

$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

Som vi ser omfattar tilldelningen av ett referenstypvärde en grund kopia. det vill säga en kopia av referensen till objektet i stället för det faktiska värdet. En djupkopia kräver däremot att du även gör en kopia av objektet.

En numerisk typ är en som tillåter representation av heltalsvärden eller bråkvärden och som stöder aritmetiska operationer på dessa värden. Uppsättningen numeriska typer omfattar heltalstyperna (·4.2.3) och verkligt tal (·4.2.4), men innehåller inte bool (·4.2.1) eller char (·4.2.2). En implementering kan ge andra numeriska typer (till exempel signerade byte, heltal utan tecken och heltal av andra storlekar).

En samling är en grupp med ett eller flera relaterade objekt som inte behöver ha samma typ. Exempel på samlingstyper är matriser, stackar, köer, listor och hash-tabeller. Ett program kan räkna upp (eller iterera) över elementen i en samling och få åtkomst till varje element ett i taget. Vanliga sätt att göra detta är med foreach-instruktionen (·8.4.4) och forEach-Object-cmdleten . Typen av ett objekt som representerar en uppräkning beskrivs i -4.5.16.

I det här kapitlet finns det tabeller som visar tillgängliga medlemmar för en viss typ. För metoder skrivs Typen med följande formulär: returnTypeargumentTypeList/. Om listan med argumenttyper är för lång för att få plats i kolumnen visas den i kolumnen Purpose i stället.

Andra heltalstyper SByteär , UInt16``Int16, UInt32, och UInt64, alla i namnrymden System.

Många samlingsklasser definieras som en del av namnrymderna System.Collections eller System.Collections.Generic . De flesta samlingsklasser implementerar gränssnitten ICollection, IComparer``IEnumerable, IList, IDictionary, och IDictionaryEnumerator deras generiska motsvarigheter.

4.1 Särskilda typer

4.1.1 Void-typen

Den här typen kan inte instansieras. Det är ett sätt att ta bort ett värde explicit med hjälp av cast-operatorn (7.2.9).

4.1.2 Null-typen

Null-typen har en instans, den automatiska variabeln $null (2.3.2.2), som även kallas null-värdet. Det här värdet är ett sätt att uttrycka "intet" i referenskontext. Egenskaperna för den här typen är ospecificerade.

4.1.3 Objekttypen

Alla typer i PowerShell utom null-typen (4.1.2) härleds direkt eller indirekt från typobjektet, så objektet är den ultimata bastypen för alla typer som inte är null. En variabel som är begränsad (·5.3) för att skriva objekt är egentligen inte begränsad alls, eftersom den kan innehålla ett värde av vilken typ som helst.

4.2 Värdetyper

4.2.1 Booleskt

Den booleska typen är bool. Det finns bara två värden av den här typen, False och True, som representeras $false $trueav de automatiska variablerna respektive (2.3.2.2).

I PowerShell mappar bool till System.Boolean.

4.2.2 tecken

Ett teckenvärde har typtecken, som kan lagra alla UTF-16-kodade 16-bitars Unicode-kodpunkt.

Typ-char har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Maxvalue Statisk egenskap (skrivskyddade) char Största möjliga värde av typen char
MinValue Statisk egenskap (skrivskyddade) char Minsta möjliga värde av typen char
IsControl Statisk metod bool/char Testar om tecknet är ett kontrolltecken
IsDigit Statisk metod bool/char Testar om tecknet är en decimalsiffra
IsLetter Statisk metod bool/char Testar om tecknet är en alfabetisk bokstav
IsLetterOrDigit Statisk metod bool/char Testar om tecknet är ett decimaltal eller en alfabetisk bokstav
IsLower Statisk metod bool/char Testar om tecknet är en gemen alfabetisk bokstav
IsPunctuation Statisk metod bool/char Testar om tecknet är ett skiljetecken
IsUpper Statisk metod bool/char Testar om tecknet är en alfabetisk bokstav i versaler
IsWhiteSpace Statisk metod bool/char Testar om tecknet är ett blanksteg.
ToLower Statisk metod char/string Konverterar tecknet till gemener
ToUpper Statisk metod char/string Konverterar tecknet till versaler

Windows PowerShell: char mappar till System.Char.

4.2.3 Heltal

Det finns två signerade heltalstyper, som båda använder tvås komplementrepresentation för negativa värden:

  • Skriv int, som använder 32 bitar, vilket ger det ett intervall på -2147483648 till +2147483647, inklusive.
  • Skriv long, som använder 64 bitar, vilket ger det ett intervall på -9223372036854775808 till +9223372036854775807, inklusive.

Typ int har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Maxvalue Statisk egenskap (skrivskyddade) int Det största möjliga värdet av typen int
MinValue Statisk egenskap (skrivskyddade) int Minsta möjliga värde av typen int

Typen long har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Maxvalue Statisk egenskap (skrivskyddade) long Det största möjliga värdet av typen long
MinValue Statisk egenskap (skrivskyddade) long Det minsta möjliga värdet av typen long

Det finns en osignerad heltalstyp:

  • Skriv byte, som använder 8 bitar och ger det intervallet 0 till 255, inklusivt.

Typen byte har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Maxvalue Statisk egenskap (skrivskyddade) byte Det största möjliga värdet av typen byte
MinValue Statisk egenskap (skrivskyddade) byte Minsta möjliga värde av typen byte

I PowerShell mappar byte``int, long och till System.Byte, System.Int32``System.Int64respektive .

4.2.4 Verkligt tal

4.2.4.1 flyttal och double

Det finns två verkliga typer (eller flyttal):

  • Typen float använder 32-bitars IEEE-representation med enkel precision.
  • Typen double använder 64-bitars IEEE-representation med dubbel precision.

Ett tredje typnamn, single, är en synonym för typen ; floatanvänds float i hela den här specifikationen.

Även om storleken och representationen av typerna och float definieras double av den här specifikationen kan en implementering använda utökad precision för mellanliggande resultat.

Typ-flyttal har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Maxvalue Statisk egenskap (skrivskyddade) flyt Största möjliga värde av typen float
MinValue Statisk egenskap (skrivskyddade) flyt Minsta möjliga värde av typen float
NaN Statisk egenskap (skrivskyddade) flyt Konstantvärdet Inte ett tal
NegativeInfinity Statisk egenskap (skrivskyddade) flyt Konstantvärdet negativ oändlighet
PositiveInfinity Statisk egenskap (skrivskyddade) flyt Konstantvärdet positiv oändlighet

Typen double har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Maxvalue Statisk egenskap (skrivskyddade) double Det största möjliga värdet av typen double
MinValue Statisk egenskap (skrivskyddade) double Det minsta möjliga värdet av typen double
NaN Statisk egenskap (skrivskyddade) double Konstantvärdet Inte ett tal
NegativeInfinity Statisk egenskap (skrivskyddade) double Konstantvärdet negativ oändlighet
PositiveInfinity Statisk egenskap (skrivskyddade) double Konstantvärdet positiv oändlighet

I PowerShell mappar float double och till System.Single System.Doublerespektive .

4.2.4.2 decimal

Typen decimal använder en 128-bitars representation. Den måste minst ha stöd för en skala att 0 <= s <= minst 28 och ett värdeintervall -79228162514264337593543950335 till 79228162514264337593543950335. Den faktiska representationen av decimaler är implementeringsdefinierad.

Typen decimal har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Maxvalue Statisk egenskap (skrivskyddade) decimal Det största möjliga värdet av typen decimal
MinValue Statisk egenskap (skrivskyddade) decimal Minsta möjliga värde av typen decimal

Anteckning

Decimala realtal har en egenskap som kallas skala, som representerar antalet siffror till höger om decimaltecknet. Värdet 2,340 har till exempel en skala på 3 där avslutande nollor är signifikanta. När två decimaltal läggs till eller subtraheras blir resultatets skala den större av de två skalorna. Till exempel är 1,0 + 2,000 3,000, medan 5,0–2,00 är 3,00. När två decimaltal multipliceras är resultatets skala summan av de två skalorna. Till exempel är 1,0 * 2,000 2,0000. När två decimaler av realtal delas är resultatets skala skalan för den första mindre än skalan för den andra. Till exempel är 4.00000/2.000 2.00. En skalning får dock inte vara mindre än den som behövs för att bevara rätt resultat. Till exempel är 3.000/2.000, 3.00/2.000, 3.0/2.000 och 3/2 alla 1,5.

I PowerShell mappar decimal till System.Decimal. Decimalrepresentationen är följande:

  • När den betraktas som en matris med fyra int värden innehåller den följande element:
    • Index 0 (bitar 0–31) innehåller den låga ordningen 32 bitar av decimalkoefficienten.
    • Index 1 (bitar 32–63) innehåller de mittersta 32 bitarna av decimalkoefficienten.
    • Index 2 (bitar 64–95) innehåller de höga ordningsföljderna 32 bitar av decimalkoefficienten.
    • Index 3 (bitar 96–127) innehåller teckenbiten och skalan enligt följande:
      • bitar 0--15 är noll
      • bitarna 16–23 innehåller skalan som ett värde 0–28
      • bitar 24–30 är noll
      • bit 31 är tecknet (0 för positivt, 1 för negativt)

4.2.5 Växeltypen

Den här typen används för att begränsa typen av en parameter i ett kommando (8.10.5). Om ett argument som har motsvarande parameternamn finns visas parametertesterna $true; Annars testas $false.

I PowerShell mappar switch till System.Management.Automation.SwitchParameter.

4.2.6 Uppräkningstyper

En uppräkningstyp är en som definierar en uppsättning namngivna konstanter som representerar alla möjliga värden som kan tilldelas till ett objekt av den uppräkningstypen. I vissa fall är uppsättningen med värden sådan att endast ett värde kan representeras i taget. I andra fall är uppsättningen med värden distinkta krafter för två, och genom att använda operatorn -bor (7.8.5) kan flera värden kodas i samma objekt.

PowerShell-miljön innehåller ett antal uppräkningstyper, enligt beskrivningen i följande avsnitt.

4.2.6.1 Action-Preference typ

Den här implementeringsdefinierade typen har följande ömsesidigt uteslutande tillgängliga medlemmar:

Medlem Medlems kind Syfte
Fortsätt Uppräkningskonstant PowerShell-körningen fortsätter bearbetningen och meddelar användaren att en åtgärd har inträffat.
Fråga Uppräkningskonstant PowerShell-körningen slutar bearbetas och frågar användaren hur den ska fortsätta.
SilentlyContinue Uppräkningskonstant PowerShell-körningen fortsätter att bearbeta utan att meddela användaren om att en åtgärd har inträffat.
Stoppa Uppräkningskonstant PowerShell-körningen slutar bearbetas när en åtgärd inträffar.

I PowerShell är den här typen System.Management.Automation.ActionPreference.

4.2.6.2 Confirm-Impact typ

Den här implementeringsdefinierade typen har följande ömsesidigt uteslutande tillgängliga medlemmar:

Medlem Medlems kind Syfte
Högt Uppräkningskonstant Den åtgärd som utförs har en hög risk att förlora data, till exempel formatera om en hårddisk.
Låg Uppräkningskonstant Den åtgärd som utförs har en låg risk att förlora data.
Medel Uppräkningskonstant Den åtgärd som utförs har en medelstor risk att förlora data.
Ingen Uppräkningskonstant Bekräfta inte några åtgärder (ignorera alla begäranden om bekräftelse).

I PowerShell är den här typen System.Management.Automation.ConfirmImpact.

4.2.6.3 File-Attributes typ

Den här implementeringsdefinierade typen har följande tillgängliga medlemmar, som kan kombineras:

Medlem Medlems kind Syfte
Arkiv Uppräkningskonstant Filens arkivstatus. Program använder det här attributet för att markera filer för säkerhetskopiering eller borttagning.
Komprimerade Uppräkningskonstant Filen komprimeras.
Enhet Reserverat för framtida användning.
Katalog Uppräkningskonstant Filen är en katalog.
Krypterad Uppräkningskonstant Filen eller katalogen är krypterad. För en fil innebär det att alla data i filen är krypterade. För en katalog innebär det att kryptering är standard för nyligen skapade filer och kataloger.
Dold Uppräkningskonstant Filen är dold och ingår därför inte i en vanlig kataloglista.
Normal Uppräkningskonstant Filen är normal och har inga andra attribut inställda. Det här attributet är endast giltigt om det används enbart.
NotContentIndexed Uppräkningskonstant Filen indexeras inte av operativsystemets innehållsindexeringstjänst.
Offline Uppräkningskonstant Filen är offline. Filens data är inte omedelbart tillgängliga.
ReadOnly Uppräkningskonstant Filen är skrivskyddade.
ReparsePoint Uppräkningskonstant Filen innehåller enparspunkt, som är ett block med användardefinierade data som är associerade med en fil eller en katalog.
SparseFile Uppräkningskonstant Filen är en gles fil. Glesa filer är vanligtvis stora filer vars data huvudsakligen är nollor.
System Uppräkningskonstant Filen är en systemfil. Filen är en del av operativsystemet eller används uteslutande av operativsystemet.
Tillfälliga Uppräkningskonstant Filen är tillfällig. Filsystem försöker lagra alla data i minnet för snabbare åtkomst i stället för att tömma data tillbaka till masslagring. En temporär fil bör tas bort av programmet så snart den inte längre behövs.

I PowerShell är den här typen System.IO.FileAttributes med attributet FlagsAttribute.

4.2.6.4 Regular-Expression-Option type

Den här implementeringsdefinierade typen har följande tillgängliga medlemmar som kan kombineras:

Medlem Medlems kind Syfte
IgnoreCase Uppräkningskonstant Anger att matchningen är icke-casekänslig.
Ingen Uppräkningskonstant Anger att inga alternativ har angetts.

En implementering kan ge andra värden.

I PowerShell är den här typen med System.Text.RegularExpressions.RegexOptions attributet FlagsAttribute. Följande extra värden definieras: Compiled, , CultureInvariant, ECMAScript``ExplicitCapture, IgnorePatternWhitespace, , Multiline, RightToLeft, Singleline.

4.3 Referenstyper

4.3.1 Strängar

Ett strängvärde har en typsträng och är en oföränderlig sekvens med noll eller flera tecken av typen char som var och en innehåller en UTF-16-kodad 16-bitars Unicode-kodpunkt.

Typsträngen har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Längd Instansegenskap int (skrivskyddade) Hämtar antalet tecken i strängen
ToLower Instansmetod sträng Skapar en ny sträng som innehåller motsvarande gemener
ToUpper Instansmetod sträng Skapar en ny sträng som innehåller den versala motsvarigheten

I PowerShell mappar string till System.String.

4.3.2 Matriser

Alla matristyper härleds från typen Array. Den här typen har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Längd Instansegenskap (skrivskyddade) int Antal element i matrisen
Rangordning Instansegenskap (skrivskyddade) int Antal dimensioner i matrisen
Kopiera Statisk metod void/see Purpose column

Kopierar ett intervall med element från en matris till en annan. Det finns fyra versioner, där källan är källmatrisen, målet är målmatrisen, antalet element som ska kopieras och sourceIndex och destinationIndex är startplatserna i respektive matris:

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 Instansmetod (skrivskyddade) int/none

Antal element i en viss dimension

GetLength(int dimension)

Mer information om matriser finns i .9.

I PowerShell mappar Array till System.Array.

4.3.3 Hashtables

Typen Hashtable har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Antal Instansegenskap int Hämtar antalet nyckel/värde-par i hash-tabellen
Nycklar Instansegenskap Implementeringsdefinierad Hämtar en samling med alla nycklar
Värden Instansegenskap Implementeringsdefinierad Hämtar en samling med alla värden
Ta bort Instansmetod void/none Tar bort den avsedda nyckeln/värdet

Mer information om hashtabeller finns i .10.

I PowerShell mappar Hashtable till System.Collections.Hashtable. Hashtable -element lagras i ett objekt av typen DictionaryEntry, och samlingarna som returneras av Nycklar och Värden har typen ICollection.

4.3.4 Xml-typen

Type xml implementerar W3C Document Object Model (DOM) Level 1 Core och Core DOM Level 2. DOM är en trädrepresentation i minnet (cache) av ett XML-dokument och möjliggör navigering och redigering av det här dokumentet. Den här typen stöder subscript-operatorn [] (7.1.4.4).

I PowerShell mappar xml till System.Xml.XmlDocument.

4.3.5 Regex-typen

Type regex tillhandahåller maskiner för bearbetning av reguljära uttryck. Det används för att begränsa typen av en parameter (·5.3) vars motsvarande argument kan innehålla ett reguljärt uttryck.

I PowerShell mappar regex till System.Text.RegularExpressions.Regex.

4.3.6 Referenstypen

Normalt skickas argument till kommandon efter värde. Om ett argument har ett värde skriver du en kopia av värdet. Om ett argument har en referenstyp skickas en kopia av referensen.

Type ref tillhandahåller maskiner som gör att argument kan skickas till kommandon som referens, så att kommandona kan ändra argumentets värde. Typref har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Värde Instansegenskap (skrivskyddade) Typen av värde som refereras. Hämtar/anger det värde som refereras.

Överväg följande funktionsdefinition och anrop:

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

Överväg i vilket fall $number är typbegränsat:

[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

Som du ser måste både argumentet och dess motsvarande parameter deklareras ref.

I PowerShell mappar ref till System.Management.Automation.PSReference.

4.3.7 Scriptblock-typen

Typ scriptblock representerar ett förkompilerat block med skripttext (7.1.8) som kan användas som en enda enhet. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Attribut Instansegenskap (skrivskyddade) Samling attribut Hämtar attributen för skriptblocket.
Fil Instansegenskap (skrivskyddade) sträng Hämtar namnet på filen där skriptblocket har definierats.
Modul Instansegenskap (skrivskyddade) implementering definierad ([·4.5.12][·4.5.12]) Hämtar information om modulen där skriptblocket har definierats.
GetNewClosure Instansmetod scriptblock
/none
Hämtar ett skriptblock som är bundet till en modul. Alla lokala variabler som finns i kontexten för anroparen kopieras till modulen.
Anropa Instansmetod Samling objekt/objekt[] Anropar skriptblocket med de angivna argumenten och returnerar resultatet.
InvokeReturnAsIs Instansmetod object/object[] Anropar skriptblocket med de angivna argumenten och returnerar alla genererade objekt.
Skapa Statisk metod scriptblock
/string
Skapar ett nytt scriptblock-objekt som innehåller det angivna skriptet.

I PowerShell mappar scriptblock till System.Management.Automation.ScriptBlock. Invoke returnerar en samling av PsObject.

4.3.8 Matematiktypen

Typ math ger åtkomst till vissa konstanter och metoder som är användbara i matematiska beräkningar. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
E Statisk egenskap (skrivskyddade) double Naturlig logaritmisk bas
PI Statisk egenskap (skrivskyddade) double Förhållandet mellan en cirkels omkrets och dess sinsitet
Abs Statisk metod numeriskt/numeriskt Absolut värde (returtypen är samma som typen av argument som skickades)
Acos Statisk metod double/double Vinkel vars cosinus är det angivna talet
Asin Statisk metod double/double Vinkel vars sinus är det angivna talet
Atan Statisk metod double/double Vinkel vars tangens är det angivna talet
Atan2 Statisk metod double/double y, double x Vinkel vars tangens är kvoten mellan två angivna tal x och y
Ceiling Statisk metod

decimal/decimal

double/double

minsta heltal som är större än eller lika med det angivna talet
Cos Statisk metod double/double Cosinus för den angivna vinkeln
Cosh Statisk metod double/double Hyperboliskt cosinus för den angivna vinkeln
Exp Statisk metod double/double e upphöjt till angiven ström
Floor Statisk metod

decimal/decimal

double/double

Största heltal som är mindre än eller lika med det angivna talet
Loggas Statisk metod

double/double number

double/double number, double base

Logaritm för tal med hjälp av bas- eller basbas
Log10 Statisk metod double/double Base-10-logaritmen för ett angivet tal
Max Statisk metod numeriskt/numeriskt Större av två angivna tal (returtypen är samma som typen av argument som skickas in)
Min Statisk metod numeriskt/numeriskt, numeriskt Mindre av två angivna tal (returtypen är samma som typen av argument som skickas in)
Pow Statisk metod double/double x, double y Ett angivet tal x upphöjt till angiven ström y
Sin Statisk metod double/double Sinus för den angivna vinkeln
Sinh Statisk metod double/double Hyperbolisk sinus för den angivna vinkeln
Sqrt Statisk metod double/double Kvadratrot för ett angivet tal
Tan Statisk metod double/double Tangens för den angivna vinkeln
Tanh Statisk metod double/double Hyperbolisk tangens för den angivna vinkeln

I PowerShell mappar Math till System.Math.

4.3.9 Den sorterade typen

Typ ordered är en pseudotyp som endast används för konverteringar.

4.3.10 Typen pscustectbject

Typ pscustomobject är en pseudotyp som endast används för konverteringar.

4.4 Allmänna typer

Ett antal programmeringsspråk och miljöer tillhandahåller typer som kan vara specialiserade. Många av dessa typer kallas containertyper, eftersom instanser av dem kan innehålla objekt av någon annan typ. Tänk dig en typ som kallas Stack och som kan representera en stack med värden som kan push-skickas på och stängas av. Vanligtvis vill användaren av en stack bara lagra en typ av objekt på stacken. Men om språket eller miljön inte stöder typspecialisering måste flera olika varianter av typen Stack implementeras även om alla utför samma uppgift, bara med olika typelement.

Typspecialisering gör att en generisk typ kan implementeras så att den kan begränsas till hantering av vissa deltyper när den används. Exempel:

  • En generisk stacktyp som är specialiserad för att innehålla strängar kan skrivas som Stack[string].
  • En allmän ordlistetyp som är specialiserad för att innehålla int-nycklar med associerade strängvärden kan skrivas som Dictionary[int,string].
  • En stack med strängar kan skrivas som Stack[Stack[string]].

Även om PowerShell inte definierar några inbyggda allmänna typer kan den använda sådana typer om de tillhandahålls av värdmiljön. Se syntaxen i 7.1.10.

Det fullständiga namnet för den typ som Stack[string] föreslås ovan är System.Collections.Generic.Stack[string]. Det fullständiga namnet för den typ som Dictionary[int,string] föreslås ovan är System.Collections.Generic.Dictionary[int,string].

4.5 Anonyma typer

I vissa fall skapar en implementering av PowerShell objekt av någon typ och dessa objekt har medlemmar som är tillgängliga för skript. Det faktiska namnet på dessa typer behöver dock inte anges, så länge de tillgängliga medlemmarna har angetts tillräckligt för att de ska kunna användas. Det innebär att skript kan spara objekt av dessa typer och komma åt deras medlemmar utan att faktiskt känna till dessa typers namn. Följande underavsnitt anger dessa typer.

4.5.1 Typ av providerbeskrivning

Den här typen kapslar in tillståndet för en provider. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Enheter Instansegenskap (skrivskyddade) Implementeringsdefinierad (·4.5.2) En samling enhetsbeskrivningsobjekt
Name Instansegenskap (skrivskyddade) sträng Namnet på providern

I PowerShell är den här typen System.Management.Automation.ProviderInfo.

4.5.2 Typ av enhetsbeskrivning

Den här typen kapslar in tillståndet för en enhet. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
CurrentLocation Instansegenskap (läs/skriv) sträng Den aktuella arbetsplatsen (·3.1.4) på enheten
Description Instansegenskap (läs/skriv) sträng Beskrivningen av enheten
Name Instansegenskap (skrivskyddade) sträng Namnet på enheten
Rot Instansegenskap (skrivskyddade) sträng Namnet på enheten

I PowerShell är den här typen System.Management.Automation.PSDriveInfo.

4.5.3 Typ av variabelbeskrivning

Den här typen kapslar in tillståndet för en variabel. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Attribut Instansegenskap (skrivskyddade) Implementering definierad En samling attribut
Description Instansegenskap (läs/skriv) sträng Beskrivningen som tilldelats variabeln via cmdletarna New-Variable eller Set-Variable .
Modul Instansegenskap (skrivskyddade) Implementering definierad (·4.5.12) Modulen som variabeln exporterades från
ModuleName Instansegenskap (skrivskyddade) sträng Modulen där variabeln definierades
Name Instansegenskap (skrivskyddade) sträng Namnet som tilldelades variabeln när den skapades på PowerShell-språket eller via cmdletarna New-Variable och Set-Variable .
Alternativ Instansegenskap (läs/skriv) sträng Alternativen som tilldelas till variabeln via cmdletarna New-Variable och Set-Variable .
Värde Instansegenskap (läs/skriv) objekt Värdet som tilldelades variabeln när den tilldelades i PowerShell-språket eller via New-Variable cmdletarna och Set-Variable .

I PowerShell är den här typen System.Management.Automation.PSVariable.

Windows PowerShell: Attributsamlingens typ är System.Management.Automation.PSVariableAttributeCollection.

4.5.4 Typ av aliasbeskrivning

Den här typen kapslar in tillståndet för ett alias. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
CommandType Instansegenskap (skrivskyddade) Implementering definierad Bör jämföra lika med "Alias".
Definition Instansegenskap (skrivskyddade) sträng Kommandot eller aliaset som aliaset har tilldelats via cmdletarna New-Alias eller Set-Alias .
Description Instansegenskap (skrivskyddade) sträng Beskrivningen som tilldelats aliaset via New-Alias cmdletarna Set-Alias eller .
Modul Instansegenskap (skrivskyddade) Implementering definierad (·4.5.12) Modulen som aliaset exporterades från
ModuleName Instansegenskap (skrivskyddade) sträng Modulen där det här aliaset har definierats
Name Instansegenskap (skrivskyddade) sträng Namnet som tilldelades aliaset när det skapades via cmdletarna New-Alias Set-Alias eller .
Alternativ Instansegenskap (skrivskyddade) sträng Alternativen som tilldelats aliaset via New-Alias New-Alias eller Set-Alias cmdlets.
OutputType Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Anger typerna av värden som matas ut av kommandot som aliaset refererar till.
Parametrar Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Parametrarna för kommandot .
Parameteruppsättningar Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Information om de parameteruppsättningar som är associerade med kommandot.
ReferencedCommand Instansegenskap (skrivskyddade) Implementering definierad Information om kommandot som omedelbart refereras av det här aliaset.
ResolvedCommand Instansegenskap (skrivskyddade) Implementering definierad Information om kommandot som aliaset slutligen matchar.

I PowerShell är den här typen System.Management.Automation.AliasInfo.

4.5.5 Beskrivningstyp för arbetsplats

Den här typen kapslar in tillståndet för en arbetsplats. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Enhet Instansegenskap (skrivskyddade) Implementering definierad (·4.5.2) Ett objekt för enhetsbeskrivning
Sökväg Instansegenskap (skrivskyddade) sträng Arbetsplatsen
Leverantör Instansegenskap (skrivskyddade) Implementering definierad (·4.5.1) Providern
ProviderPath Instansegenskap (skrivskyddade) sträng Providerns aktuella sökväg

En stack med arbetsplatser är en samling arbetsplatsobjekt, enligt beskrivningen ovan.

I PowerShell representeras en aktuell arbetsplats av ett objekt av typen System.Management.Automation.PathInfo. En stack med arbetsplatser representeras av ett objekt av typen System.Management.Automation.PathInfoStack, som är en samling objekt PathInfo .

4.5.6 Beskrivningstyp för miljövariabel

Den här typen kapslar in tillståndet för en miljövariabel. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Name Instansegenskap (skrivskyddade) sträng Namnet på miljövariabeln
Värde Instansegenskap (skrivskyddade) sträng Värdet för miljövariabeln

I PowerShell är den här typen System.Collections.DictionaryEntry. Namnet på variabeln är ordlistenyckeln. Värdet för miljövariabeln är ordlistevärdet. Namn är ett AliasProperty namn som motsvarar Nyckel.

4.5.7 Typ av programbeskrivning

Den här typen kapslar in tillståndet för ett program. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
CommandType Instansegenskap (skrivskyddade) Implementering definierad Bör jämföras med "Program".
Definition Instansegenskap (skrivskyddade) sträng En beskrivning av programmet.
Anknytning Instansegenskap (skrivskyddade) sträng Tillägget av programfilen.
Modul Instansegenskap (skrivskyddade) Implementering definierad (·4.5.12) Modulen som definierar det här kommandot.
ModuleName Instansegenskap (skrivskyddade) sträng Namnet på modulen som definierar kommandot.
Name Instansegenskap (skrivskyddade) sträng Namnet på kommandot.
OutputType Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Anger typerna av värden som matas ut av kommandot .
Parametrar Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Parametrarna för kommandot .
Parameteruppsättningar Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Information om de parameteruppsättningar som är associerade med kommandot.
Sökväg Instansegenskap (skrivskyddade) sträng Hämtar sökvägen till programfilen.

I PowerShell är den här typen System.Management.Automation.ApplicationInfo.

Beskrivningstyp för 4.5.8-cmdlet

Den här typen kapslar in tillståndet för en cmdlet. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
CommandType Instansegenskap (skrivskyddade) Implementering definierad Bör jämföra lika med "Cmdlet".
DefaultParameterSet Instansegenskap (skrivskyddade) Implementering definierad Standardparameteruppsättningen som används om PowerShell inte kan avgöra vilken parameter som ska användas baserat på de angivna argumenten.
Definition Instansegenskap (skrivskyddade) sträng En beskrivning av cmdleten .
HelpFile Instansegenskap (skrivskyddade) sträng Sökvägen till hjälpfilen för cmdleten .
ImplementingType Instansegenskap (skrivskyddade) Implementering definierad Den typ som implementerar cmdleten .
Modul Instansegenskap (skrivskyddade) Implementering definierad (·4.5.12) Modulen som definierar denna cmdlet.
ModuleName Instansegenskap (skrivskyddade) sträng Namnet på modulen som definierar cmdleten .
Name Instansegenskap (skrivskyddade) sträng Namnet på cmdleten.
Substantiv Instansegenskap (skrivskyddade) sträng Substantivnamnet för cmdleten.
OutputType Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Anger typerna av värden som matas ut av cmdleten .
Parametrar Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Parametrarna för cmdleten .
Parameteruppsättningar Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Information om de parameteruppsättningar som är associerade med cmdleten .
Verb Instansegenskap (skrivskyddade) sträng Verbnamnet för cmdleten.
PSSnapIn Instansegenskap (skrivskyddade) Implementering definierad Windows PowerShell: Information om Windows powershell-snapin-modulen som används för att registrera cmdleten.

I PowerShell är den här typen System.Management.Automation.CmdletInfo.

4.5.9 Beskrivningstyp för externt skript

Den här typen kapslar in tillståndet för ett externt skript (ett som är direkt körbart av PowerShell, men inte är inbyggt). Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
CommandType Instansegenskap (skrivskyddade) Implementering definierad Bör jämföra lika med "ExternalScript".
Definition Instansegenskap (skrivskyddade) sträng En definition av skriptet.
Modul Instansegenskap (skrivskyddade) Implementering definierad (·4.5.12) Modulen som definierar det här skriptet.
ModuleName Instansegenskap (skrivskyddade) sträng Namnet på modulen som definierar skriptet.
Name Instansegenskap (skrivskyddade) sträng Namnet på skriptet.
OriginalEncoding Instansegenskap (skrivskyddade) Implementering definierad Den ursprungliga kodning som används för att konvertera tecknen i skriptet till byte.
OutputType Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Anger typerna av värden som matas ut av skriptet.
Parametrar Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Parametrarna för skriptet.
Parameteruppsättningar Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Information om de parameteruppsättningar som är associerade med skriptet.
Sökväg Instansegenskap (skrivskyddade) sträng Sökvägen till skriptfilen.
ScriptBlock Instansegenskap (skrivskyddade) scriptblock Det externa skriptet.
ScriptContents Instansegenskap (skrivskyddade) sträng Det ursprungliga innehållet i skriptet.

I PowerShell är den här typen System.Management.Automation.ExternalScriptInfo.

4.5.10 Funktionsbeskrivningstyp

Den här typen kapslar in tillståndet för en funktion. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
CmdletBinding Instansegenskap (skrivskyddade) boolesk Anger om funktionen använder samma parameterbindning som kompilerade cmdlets använder (se 12.3.5).
CommandType Instansegenskap (skrivskyddade) Implementering definierad Kan jämföras för likhet med "Funktion" eller "Filter" för att se vilka av dessa som det här objektet representerar.
DefaultParameterSet Instansegenskap (skrivskyddade) sträng Anger den parameter som ska användas om det inte går att fastställa från argumenten (se 12.3.5).
Definition Instansegenskap (skrivskyddade) sträng En strängversion av ScriptBlock
Description Instansegenskap (skrivskyddade) sträng Beskrivningen av funktionen.
Modul Instansegenskap (skrivskyddade) Implementering definierad (·4.5.12) Modulen som den här funktionen exporterades från
ModuleName Instansegenskap (skrivskyddade) sträng Modulen där den här funktionen definierades
Name Instansegenskap (skrivskyddade) sträng Namnet på funktionen
Alternativ Instansegenskap (läs/skriv) Implementering definierad Omfångsalternativen för funktionen (3.5.4).
OutputType Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Anger vilka typer av värden som matas ut i ordning (se 12.3.6).
Parametrar Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Anger parameternamnen i ordning. Om funktionen fungerar som en cmdlet (se CmdletBinding ovan) inkluderas de gemensamma parametrarna i slutet av samlingen.
Parameteruppsättningar Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Information om de parameteruppsättningar som är associerade med kommandot. För varje parameter visar resultatet parameternamnet och typen och anger om parametern är obligatorisk, efter position eller en switchparameter. Om funktionen fungerar som en cmdlet (se CmdletBinding ovan) inkluderas de gemensamma parametrarna i slutet av samlingen.
ScriptBlock Instansegenskap (skrivskyddade) scriptblock (·4.3.6) Brödtexten i funktionen

I PowerShell är den här typen System.Management.Automation.FunctionInfo.

  • CommandType har typen System.Management.Automation.CommandTypes.
  • Options har typen System.Management.Automation.ScopedItemOptions.
  • OutputType har typen System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.PSTypeName,System.Management.Automation]].
  • Parameters har typen System.Collections.Generic.Dictionary``2[[System.String,mscorlib],[System.Management.Automation.ParameterMetadata,System.Management.Automation]].
  • ParameterSets har typen System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.CommandParameterSetInfo,System.Management.Automation]].
  • Synlighet har typen System.Management.Automation.SessionStateEntryVisibility.
  • PowerShell har också en egenskap som kallas Synlighet.

4.5.11 Filterbeskrivningstyp

Den här typen kapslar in tillståndet för ett filter. Den har samma uppsättning tillgängliga medlemmar som funktionsbeskrivningstypen (4.5.10).

I PowerShell är den här typen System.Management.Automation.FilterInfo. Den har samma uppsättning egenskaper som System.Management.Automation.FunctionInfo (–4.5.11).

4.5.12 Typ av modulbeskrivning

Den här typen kapslar in tillståndet för en modul. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Description Instansegenskap (läs/skriv) sträng Beskrivning av modulen (som anges av manifestet)
ModuleType Instansegenskap (skrivskyddade) Implementering definierad Typ av modul (manifest, skript eller binär)
Name Instansegenskap (skrivskyddade) sträng Namnet på modulen
Sökväg Instansegenskap (skrivskyddade) sträng Modulens sökväg

I PowerShell är den här typen System.Management.Automation.PSModuleInfo. Typen av ModuleType är System.Management.Automation.ModuleType.

4.5.13 Beskrivningstyp för anpassat objekt

Den här typen kapslar in tillståndet för ett anpassat objekt. Den har inga tillgängliga medlemmar.

I PowerShell är den här typen System.Management.Automation.PSCustomObject. Cmdletarna och Import-Module kan New-Object generera ett objekt av den här typen.

4.5.14 Typ av kommandobeskrivning

Den automatiska variabeln $PsCmdlet är ett objekt som representerar den cmdlet eller funktion som körs. Typen av det här objektet är implementeringsdefinierad. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
ParameterSetName Instansegenskap (skrivskyddade) sträng Namnet på den aktuella parameteruppsättningen (se ParameterSetName)
ShouldContinue Instansmetod

Överbelastad

/bool

Begär bekräftelse av en åtgärd från användaren.
ShouldProcess Instansmetod

Överbelastad

/bool

Begär bekräftelse från användaren innan en åtgärd utförs.

I PowerShell är den här typen System.Management.Automation.PSScriptCmdlet.

4.5.15 Typ av beskrivning av felpost

Den automatiska variabeln $Error innehåller en samling felposter som representerar de senaste felen (3.12). Även om typen av den här samlingen är ospecificerad har den stöd för uppskrivning för att få åtkomst till enskilda felposter.

I PowerShell är samlingstypen System.Collections.ArrayList. Typen av en enskild felpost i samlingen är System.Management.Automation.ErrorRecord. Den här typen har följande offentliga egenskaper:

  • CategoryInfo – Hämtar information om felkategorin.
  • ErrorDetails – Hämtar och anger mer detaljerad felinformation, till exempel ett ersättningsfelmeddelande.
  • Undantag – Hämtar undantaget som är associerat med den här felposten.
  • FullyQualifiedErrorId – Hämtar den fullständigt kvalificerade felidentifieraren för den här felposten.
  • InvocationInfo – Hämtar information om kommandot som anropades när felet inträffade.
  • PipelineIterationInfo – Hämtar status för pipelinen när den här felposten skapades
  • TargetObject – Hämtar objektet som bearbetades när felet inträffade.

Beskrivningstyp för 4.5.16-uppräkning

Ett antal variabler är uppräkningar för samlingar (–4). Den automatiska variabeln $foreach är uppräkningsvariabeln som skapas för en -instruktion foreach . Den automatiska variabeln $input är uppräkning för en samling som levereras till en funktion från pipelinen. Den automatiska variabeln $switch är uppräkningsvariabeln som skapas för en -instruktion switch .

En uppräkningstypen är implementeringsdefinierad. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Aktuellt Instansegenskap (skrivskyddade) objekt Hämtar det aktuella elementet i samlingen. Om uppräkningsatorn för närvarande inte är placerad vid ett element i samlingen är beteendet implementeringen definierad.
FlyttaNästa Instansmetod Ingen/bool Flyttar upp uppräkning till nästa element i samlingen. Returnerar $true om uppräkning har avancerat till nästa element. $false om uppräkningsatorn har passerat slutet av samlingen.

I PowerShell definieras dessa medlemmar i gränssnittet System.IEnumerator, som implementeras av de typer som anges nedan. Om uppräkningsatorn för närvarande inte är placerad vid ett element i samlingen utlöses ett undantag av typen InvalidOperationException . För $foreachär den här typen System.Array+SZArrayEnumerator. För $inputär den här typen System.Collections.ArrayList+ArrayListEnumeratorSimple. För $switchär den här typen System.Array+SZArrayEnumerator.

4.5.17 Katalogbeskrivningstyp

Cmdleten New-Item kan skapa objekt av olika typer, inklusive FileSystem-kataloger. Typen av ett katalogbeskrivningsobjekt är implementeringsdefinierad. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Attribut Instansegenskap (skrivskyddade) Implementering definierad (·4.2.6.3) Hämtar eller anger ett eller flera av attributen för katalogobjektet.
SkapadTid Instansegenskap (skrivskyddade) Implementering definierad (·4.5.19) Hämtar och anger skapandetiden för katalogobjektet.
Anknytning Instansegenskap (skrivskyddade) sträng Hämtar tilläggsdelen av katalognamnet.
FullName Instansegenskap (skrivskyddade) sträng Hämtar den fullständiga sökvägen till katalogen.
LastWriteTime Instansegenskap (skrivskyddade) Implementering definierad (·4.5.19) Hämtar och anger den tid då katalogen senast skrevs till.
Name Instansegenskap (skrivskyddade) sträng Hämtar namnet på katalogen.

I PowerShell är den här typen System.IO.DirectoryInfo. Typen av attributegenskap är System.IO.FileAttributes.

4.5.18 Typ av filbeskrivning

Cmdleten New-Item kan skapa objekt av olika typer, inklusive FileSystem-filer. Typen av ett filbeskrivningsobjekt är implementeringsdefinierad. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Attribut Instansegenskap (skrivskyddade) Implementering definierad (·4.2.6.3) Hämtar eller anger ett eller flera av attributen för filobjektet.
BaseName Instansegenskap (skrivskyddade) sträng Hämtar namnet på filen exklusive tillägget.
SkapadTid Instansegenskap (skrivskyddade) Implementering definierad (·4.5.19) Hämtar och anger skapandetiden för filobjektet.
Anknytning Instansegenskap (skrivskyddade) sträng Hämtar tilläggsdelen av filnamnet.
FullName Instansegenskap (skrivskyddade) sträng Hämtar den fullständiga sökvägen till filen.
LastWriteTime Instansegenskap (skrivskyddade) Implementering definierad (·4.5.19) Hämtar och anger den tid då filen senast skrevs till.
Längd Instansegenskap (skrivskyddade) long Hämtar storleken på filen i byte.
Name Instansegenskap (skrivskyddade) sträng Hämtar namnet på filen.
VersionInfo Instansegenskap (skrivskyddade) Implementering definierad Windows PowerShell: Den här ScriptProperty returnerar en System.Diagnostics.FileVersionInfo för filen.

I PowerShell är den här typen System.IO.FileInfo.

4.5.19 Date-Time beskrivningstyp

Typen av ett objekt för beskrivning av datum/tid är implementeringsdefinierad. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Dag Instansegenskap (skrivskyddade) int Hämtar dagkomponenten i månaden som representeras av den här instansen.
Tid Instansegenskap (skrivskyddade) int Hämtar timkomponenten för det datum som representeras av den här instansen.
Minut Instansegenskap (skrivskyddade) int Hämtar minutkomponenten för det datum som representeras av den här instansen.
Månad Instansegenskap (skrivskyddade) int Hämtar månadskomponenten för det datum som representeras av den här instansen.
Second Instansegenskap (skrivskyddade) int Hämtar sekundkomponenten för det datum som representeras av den här instansen.
Year Instansegenskap (skrivskyddade) int Hämtar årskomponenten för det datum som representeras av den här instansen.

Ett objekt av den här typen kan skapas av cmdleten Get-Date.

I PowerShell är den här typen System.DateTime.

4.5.20 Group-Info beskrivningstyp

Typen av ett objekt för beskrivning av gruppinformation är implementeringsdefinierad. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Antal Instansegenskap (skrivskyddade) int Hämtar antalet element i gruppen.
Group Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Hämtar elementen i gruppen.
Name Instansegenskap (skrivskyddade) sträng Hämtar namnet på gruppen.
Värden Instansegenskap (skrivskyddade) Implementeringsdefinierad samling Hämtar värdena för elementen i gruppen.

Ett objekt av den här typen kan skapas av cmdleten Group-Object.

I PowerShell är den här typen Microsoft.PowerShell.Commands.GroupInfo.

Beskrivningstypen 4.5.21 Generic-Measure-Info

Typen av ett generic-measure-info description-objekt är implementeringsdefinierad. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Genomsnitt Instansegenskap (skrivskyddade) double Hämtar medelvärdet av värdena för de egenskaper som mäts.
Antal Instansegenskap (skrivskyddade) int Hämtar antalet objekt med de angivna egenskaperna.
Maximal Instansegenskap (skrivskyddade) double Hämtar det maximala värdet för de angivna egenskaperna.
Minimum Instansegenskap (skrivskyddade) double Hämtar minimivärdet för de angivna egenskaperna.
Egenskap Instansegenskap (skrivskyddade) sträng Hämtar egenskapen som ska mätas.
Sum Instansegenskap (skrivskyddade) double Hämtar summan av värdena för de angivna egenskaperna.

Ett objekt av den här typen kan skapas av cmdleten Measure-Object.

I PowerShell är den här typen Microsoft.PowerShell.Commands.GenericMeasureInfo.

Beskrivningstypen 4.5.22 Text-Measure-Info

Typen av ett objekt för beskrivning av textinformation är implementeringsdefinierad. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Tecken Instansegenskap (skrivskyddade) int Hämtar antalet tecken i målobjektet.
Rader Instansegenskap (skrivskyddade) int Hämtar antalet rader i målobjektet.
Egenskap Instansegenskap (skrivskyddade) sträng Hämtar egenskapen som ska mätas.
Ord Instansegenskap (skrivskyddade) int Hämtar antalet ord i målobjektet.

Ett objekt av den här typen kan skapas av cmdleten Measure-Object.

I PowerShell är den här typen Microsoft.PowerShell.Commands.TextMeasureInfo.

4.5.23 Autentiseringstyp

Ett autentiseringsobjekt kan sedan användas i olika säkerhetsåtgärder. Typen av ett autentiseringsobjekt är implementeringsdefinierad. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Lösenord Instansegenskap (skrivskyddade) Implementering definierad Hämtar lösenordet.
Användarnamn Instansegenskap (skrivskyddade) sträng Hämtar användarnamnet.

Ett objekt av den här typen kan skapas av cmdleten Get-Credential.

I PowerShell är den här typen System.Management.Automation.PSCredential.

4.5.24 Typ av metoddesigner

Typen av en metoddesignerare är implementeringsdefinierad. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Anropa Instansmetod objekt/variabelnummer och typ Tar ett variabelt antal argument och anropar indirekt metoden som den överordnade metoddesignatorn refererar till och skicka argumenten.

Ett objekt av den här typen kan skapas med ett anropsuttryck (7.1.3).

I PowerShell är den här typen System.Management.Automation.PSMethod.

4.5.25 Medlemsdefinitionstyp

Den här typen kapslar in definitionen av en medlem. Den har följande tillgängliga medlemmar:

Medlem Medlems kind Typ Syfte
Definition Instansegenskap (skrivskyddade) sträng Hämtar definitionen av medlemmen.
MemberType Instansegenskap (skrivskyddade) Implementering definierad Hämtar PowerShell-typen för medlemmen.
Name Instansegenskap (skrivskyddade) sträng Hämtar namnet på medlemmen.
Typename Instansegenskap (skrivskyddade) sträng Hämtar typnamnet för medlemmen.

I PowerShell är den här typen Microsoft.PowerShell.Commands.MemberDefinition.

4.6 Typtillägg och anpassning

En PowerShell-implementering innehåller en familj av kärntyper (som dokumenteras i det här kapitlet) som var och en innehåller en egen uppsättning basmedlemmar. Dessa medlemmar kan vara metoder eller egenskaper, och de kan vara instansmedlemmar eller statiska medlemmar. Till exempel är basmedlemmarna av typsträngen (·4.3.1) instansegenskapen Length och instansmetoderna ToLower och ToUpper.

När ett objekt skapas innehåller det alla instansegenskaper för objektets typ, och instansmetoderna för den typen kan anropas för objektet. Ett objekt kan anpassas via tillägg av instansmedlemmar vid körning. Resultatet kallas för ett anpassat objekt. Medlemmar som läggs till i en instans finns bara under den instansens livslängd. andra instanser av samma kärntyp påverkas inte.

En basmedlemsuppsättning av en typ kan utökas genom att följande typer av medlemmar har tillägget:

  • anpassade medlemmar, via ETS ( Extended Type System ), de flesta detaljer som inte är angivna.
  • utökade medlemmar, via cmdleten Add-Member.

I PowerShell kan utökade medlemmar också läggas till via types.ps1xml filer. Anpassade och utökade medlemmar kallas gemensamt syntetiska medlemmar.

ETS lägger till följande medlemmar i alla PowerShell-objekt: psbase, psadapted, psextended och pstypenames. Mer information om dessa medlemmar finns i force - och view-parametrarna i cmdleten Get-Member.

En instansmedlem kan dölja en utökad och/eller anpassad medlem med samma namn, och en utökad medlem kan dölja en anpassad medlem. I sådana fall kan medlemsuppsättningarna psadapted och psextended användas för att komma åt dessa dolda medlemmar.

Om en types.ps1xml anger en medlem som heter Supports ger åtkomst obj.psextended till just den medlemmen och inte till en medlem som lagts till via Add-Member.

Det finns tre sätt att skapa ett anpassat objekt med en ny medlem M:

  1. Den här metoden kan användas för att lägga till en eller flera NoteProperty-medlemmar.

    $x = New-Object PsObject -Property @{M = 123}`
    
  2. Den här metoden kan användas för att lägga till NoteProperty- eller ScriptMethod-medlemmar.

    $x = New-Module -AsCustomObject {$M = 123 ; Export-ModuleMember --Variable M}`
    
  3. Den här metoden kan användas för att lägga till alla typer av medlemmar.

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

PsObject är bastypen för alla PowerShell-typer.