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
$true
av 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.Int64
respektive .
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 ; float
anvä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.Double
respektive .
4.2.4.2 decimal
Typen decimal använder en 128-bitars representation. Den måste minst ha stöd för en skala så 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) |
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 typenSystem.Management.Automation.CommandTypes
.Options
har typenSystem.Management.Automation.ScopedItemOptions
.OutputType
har typenSystem.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.PSTypeName,System.Management.Automation]]
.Parameters
har typenSystem.Collections.Generic.Dictionary``2[[System.String,mscorlib],[System.Management.Automation.ParameterMetadata,System.Management.Automation]]
.ParameterSets
har typenSystem.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:
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}`
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}`
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.
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för