Tipi

In PowerShell ogni valore ha un tipo e i tipi rientrano in una delle due categorie principali: tipi valore e tipi riferimento. Si consideri il int tipo , tipico dei tipi valore. Un valore di tipo è completamente indipendente. Tutti i bit necessari per rappresentare tale valore vengono archiviati in tale valore e ogni modello di bit in tale valore rappresenta un valore valido per il int relativo tipo. Si consideri ora il tipo di int[] matrice , che è tipico dei tipi riferimento. Un cosiddetto valore di un tipo matrice può contenere un riferimento a un oggetto che contiene effettivamente gli elementi della matrice o il riferimento Null il cui valore è $null . L'importante distinzione tra le due categorie di tipi è meglio dimostrata dalle differenze nella semantica durante l'assegnazione. Ad esempio,

$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

Come si può vedere, l'assegnazione di un valore di tipo riferimento implica una copia superficiale. ad esempio una copia del riferimento all'oggetto anziché il relativo valore effettivo. Al contrario, una copia completa richiede anche l'esecuzione di una copia dell'oggetto.

Un tipo numerico è un tipo che consente la rappresentazione di valori interi o frazionari e che supporta operazioni aritmetiche su tali valori. Il set di tipi numerici include i tipi integer (\4.2.3) e numero reale (=4.2.4), ma non include bool (=4.2.1) o char (=4.2.2). Un'implementazione può fornire altri tipi numerici, ad esempio byte con segno, intero senza segno e numeri interi di altre dimensioni.

Una raccolta è un gruppo di uno o più elementi correlati che non devono avere lo stesso tipo. Esempi di tipi di raccolta sono matrici, stack, code, elenchi e tabelle hash. Un programma può enumerare (o scorrere) gli elementi di una raccolta, ottenendo l'accesso a ogni elemento uno alla volta. I modi più comuni per eseguire questa operazione sono l'istruzione foreach (\8.4.4) e il ForEach-Object cmdlet (\13.12). Il tipo di un oggetto che rappresenta un enumeratore è descritto in §4.5.16.

In questo capitolo sono disponibili tabelle che elencano i membri accessibili per un determinato tipo. Per i metodi, il tipo è scritto nel formato seguente: argumentType ArgumentTypeList returnTypeList / . Se l'elenco di tipi di argomento è troppo lungo per essere contenuto in tale colonna, viene invece visualizzato nella colonna Scopo.

Altri tipi Integer sono SByte , , , e , tutti nello spazio dei nomi Int16 UInt16 UInt32 UInt64 System.

Molte classi collection sono definite come parte degli spazi dei nomi System.Collections o System.Collections.Generic. La maggior parte delle classi collection implementa le interfacce ICollection , , , , e e i relativi IComparer IEnumerable IList IDictionary IDictionaryEnumerator equivalenti generici.

Tipi speciali

Tipo void

Non è possibile creare un'istanza di questo tipo. Fornisce un modo per eliminare un valore in modo esplicito usando l'operatore cast (Sezione 7.2.9).

Tipo Null

Il tipo Null ha un'istanza, la variabile $null (Sezione 2.3.2.2), nota anche come valore Null. Questo valore consente di esprimere il "nulla" nei contesti di riferimento. Le caratteristiche di questo tipo non sono state specifiche.

Tipo di oggetto

Ogni tipo in PowerShell ad eccezione del tipo Null (§4.1.2) viene derivato direttamente o indirettamente dall'oggetto tipo, pertanto object è il tipo di base finale di tutti i tipi non Null. Una variabile vincolata (Sezione 5.3) all'oggetto di tipo non è affatto vincolata, perché può contenere un valore di qualsiasi tipo.

Tipi valore

Booleano

Il tipo booleano è bool . Esistono solo due valori di questo tipo, Fal****se e True, rappresentati rispettivamente dalle variabili automatiche $false e , $true rispettivamente (Sezione 2.3.2.2).

In PowerShell esegue bool il mapping a System.Boolean .

Carattere

Un valore carattere è di tipo char, in grado di archiviare qualsiasi punto di codice Unicode a 16 bit con codifica UTF-16.

Il tipo char ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
MaxValue Proprietà statica (sola lettura) char Valore massimo possibile di tipo char
Minvalue Proprietà statica (sola lettura) char Il valore più piccolo possibile di tipo char
IsControl Metodo statico bool/char Verifica se il carattere è un carattere di controllo
IsDigit Metodo statico bool/char Verifica se il carattere è una cifra decimale
IsLetter Metodo statico bool/char Verifica se il carattere è una lettera alfabetica
IsLetterOrDigit Metodo statico bool/char Verifica se il carattere è una cifra decimale o una lettera alfabetica
IsLower Metodo statico bool/char Verifica se il carattere è una lettera alfabetica minuscola
IsPunctuation Metodo statico bool/char Verifica se il carattere è un segno di punteggiatura
IsUpper Metodo statico bool/char Verifica se il carattere è una lettera alfabetica maiuscola
IsWhiteSpace Metodo statico bool/char Verifica se il carattere è uno spazio vuoto.
ToLower Metodo statico char/string Converte il carattere in lettere minuscole
ToUpper Metodo statico char/string Converte il carattere in maiuscolo

Windows PowerShell: char esegue il mapping a System.Char.

Intero

Esistono due tipi integer con segno, che usano entrambi la rappresentazione in complemento a due per i valori negativi:

  • Tipo , che usa 32 bit con un intervallo compreso tra int -2147483648 e +2147483647, inclusi.
  • Tipo , che usa 64 bit con un intervallo compreso tra long -9223372036854775808 e +9223372036854775807, inclusi.

Il tipo int ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
MaxValue Proprietà statica (sola lettura) INT Valore massimo possibile di tipo int
Minvalue Proprietà statica (sola lettura) INT Il valore più piccolo possibile di tipo int

Il tipo long ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
MaxValue Proprietà statica (sola lettura) long Valore massimo possibile di tipo long
Minvalue Proprietà statica (sola lettura) long Il valore più piccolo possibile di tipo long

Esiste un tipo Intero senza segno:

  • Tipo byte , che usa 8 bit, fornendo un intervallo compreso tra 0 e 255 inclusi.

Il byte tipo ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
MaxValue Proprietà statica (sola lettura) byte Valore massimo possibile di tipo byte
Minvalue Proprietà statica (sola lettura) byte Il valore più piccolo possibile di tipo byte

In PowerShell, byte , e e e vengono int mappati rispettivamente long a System.Byte , e System.Int32 System.Int64 .

Numero reale

float e double

Esistono due tipi reali (o a virgola mobile):

  • Il tipo usa la rappresentazione a precisione singola float IEEE a 32 bit.
  • Il tipo usa la rappresentazione a precisione doppia double IEEE a 64 bit.

Un terzo nome di tipo, , è un sinonimo del tipo single ; viene usato in questa float float specifica.

Anche se le dimensioni e la rappresentazione dei tipi e sono definite da questa specifica, un'implementazione può usare la precisione float estesa per i risultati double intermedi.

Il tipo float ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
MaxValue Proprietà statica (sola lettura) float Il valore più grande possibile di tipo float
Minvalue Proprietà statica (sola lettura) float Valore più piccolo possibile di tipo float
NaN Proprietà statica (sola lettura) float Valore costante Not-a-Number
Negativeinfinity Proprietà statica (sola lettura) float Valore costante infinito negativo
Positiveinfinity Proprietà statica (sola lettura) float Valore costante infinito positivo

Il tipo double ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
MaxValue Proprietà statica (sola lettura) double Valore massimo possibile di tipo double
Minvalue Proprietà statica (sola lettura) double Il valore più piccolo possibile di tipo double
NaN Proprietà statica (sola lettura) double Valore costante Not-a-Number
Negativeinfinity Proprietà statica (sola lettura) double Valore costante infinito negativo
Positiveinfinity Proprietà statica (sola lettura) double Valore costante infinito positivo

In PowerShell eseguire float il double mapping rispettivamente a e System.Single System.Double .

decimal

Il tipo decimal usa una rappresentazione a 128 bit. Deve almeno supportare una scala s in modo che 0 <= s <= almeno 28 e un intervallo di valori -79228162514264264337593543950335 a 79228162514264337593543950335. La rappresentazione effettiva di decimal è definita dall'implementazione.

Il tipo decimal ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
MaxValue Proprietà statica (sola lettura) decimal Valore più grande possibile di tipo decimal
Minvalue Proprietà statica (sola lettura) decimal Il valore più piccolo possibile di tipo decimal

Nota

I numeri reali decimali hanno una caratteristica denominata scala, che rappresenta il numero di cifre a destra del separatore decimale. Ad esempio, il valore 2.340 ha una scala di 3 in cui gli zeri finali sono significativi. Quando vengono aggiunti o sottratti due numeri reali decimali, la scala del risultato è la più grande delle due scale. Ad esempio, 1.0 + 2.000 è 3.000, mentre 5.0 - 2.00 è 3,00. Quando vengono moltiplicati due numeri reali decimali, la scala del risultato è la somma delle due scale. Ad esempio, 1,0 * 2.000 è 2.0000. Quando vengono divisi due numeri reali decimali, la scala del risultato è la scala del primo meno la scala del secondo. Ad esempio, 4.00000/2.000 è 2,00. Tuttavia, una scala non può essere inferiore a quella necessaria per mantenere il risultato corretto. Ad esempio, 3.000/2.000, 3.00/2.000, 3.0/2.000 e 3/2 sono tutti 1,5.

In PowerShell esegue decimal il mapping a System.Decimal . La rappresentazione di decimal è la seguente:

  • Se considerata come una matrice di quattro int valori, contiene gli elementi seguenti:
    • L'indice 0 (bit 0-31) contiene i 32 bit meno bassi del coefficiente decimale.
    • L'indice 1 (bit 32-63) contiene i 32 bit intermedi del coefficiente decimale.
    • L'indice 2 (bit 64-95) contiene i 32 bit più alti del coefficiente decimale.
    • L'indice 3 (bit 96-127) contiene il bit di segno e la scala, come indicato di seguito:
      • bit 0-15 sono zero
      • i bit 16-23 contengono la scala come valore 0-28
      • i bit da 24 a 30 sono zero
      • bit 31 è il segno (0 per positivo, 1 per negativo)

Tipo di commutatore

Questo tipo viene usato per vincolare il tipo di un parametro in un comando (?8.10.5). Se è presente un argomento con il nome del parametro corrispondente, il test del parametro $true; In caso contrario, esegue il test $false di .

In PowerShell esegue switch il mapping a System.Management.Automation.SwitchParameter .

Tipi di enumerazione

Un tipo di enumerazione definisce un set di costanti denominate che rappresentano tutti i valori possibili che possono essere assegnati a un oggetto di tale tipo di enumerazione. In alcuni casi, il set di valori è tale che è possibile rappresentare un solo valore alla volta. In altri casi, il set di valori è una potenza distinta di due e, usando l'operatore -bor (=7.8.5), è possibile codificare più valori nello stesso oggetto.

L'ambiente PowerShell fornisce diversi tipi di enumerazione, come descritto nelle sezioni seguenti.

Action-Preference tipo

Questo tipo definito dall'implementazione ha i membri accessibili a valori esclusivi seguenti:

Membro Tipo di membro Scopo
Continua Costante di enumerazione Il runtime di PowerShell continuerà l'elaborazione e invierà una notifica all'utente che si è verificata un'azione.
Verifica Costante di enumerazione Il runtime di PowerShell interromperà l'elaborazione e chiederà all'utente come procedere.
SilentlyContinue Costante di enumerazione Il runtime di PowerShell continuerà l'elaborazione senza notificare all'utente che si è verificata un'azione.
Interrompere Costante di enumerazione Il runtime di PowerShell interromperà l'elaborazione quando si verifica un'azione.

In PowerShell questo tipo è System.Management.Automation.ActionPreference .

Confirm-Impact tipo

Questo tipo definito dall'implementazione ha i membri accessibili a valori esclusivi seguenti:

Membro Tipo di membro Scopo
Alto Costante di enumerazione L'azione eseguita presenta un rischio elevato di perdita di dati, ad esempio la riformattazione di un disco rigido.
Basso Costante di enumerazione L'azione eseguita presenta un basso rischio di perdita di dati.
Medio Costante di enumerazione L'azione eseguita presenta un rischio medio di perdita di dati.
nessuno Costante di enumerazione Non confermare alcuna azione (eliminare tutte le richieste di conferma).

In PowerShell questo tipo è System.Management.Automation.ConfirmImpact .

File-Attributes tipo

Questo tipo definito dall'implementazione ha i membri accessibili seguenti, che possono essere combinati:

Membro Tipo di membro Scopo
Archiviazione Costante di enumerazione Stato di archiviazione del file. Le applicazioni usano questo attributo per contrassegnare i file per il backup o la rimozione.
Compresso Costante di enumerazione Il file è compresso.
Dispositivo Riservato per utilizzi futuri.
Directory Costante di enumerazione Il file è una directory.
Crittografato Costante di enumerazione Il file o la directory è crittografato. Per un file, questo significa che tutti i dati del file sono crittografati. Per una directory, significa che la crittografia è l'impostazione predefinita per i nuovi file e le nuove directory.
Nascosto Costante di enumerazione Il file è nascosto, quindi non viene incluso in un elenco normale del contenuto delle directory.
Normale Costante di enumerazione Il file è normale e non ha altri attributi impostati. Questo attributo è valido solo se utilizzato da solo.
NotContentIndexed Costante di enumerazione Il file non sarà indicizzato dal servizio di indicizzazione dei contenuti del sistema operativo.
Offline Costante di enumerazione Il file è offline. I dati del file non sono immediatamente disponibili.
ReadOnly Costante di enumerazione Il file è di sola lettura.
ReparsePoint Costante di enumerazione Il file contiene un punto di analisi, ovvero un blocco di dati definiti dall'utente associato a un file o una directory.
SparseFile Costante di enumerazione Il file è un file sparse. I file di tipo sparse sono in genere file di grandi dimensioni i cui dati sono per lo più zeri.
Sistema Costante di enumerazione Il file è un file system. Il file fa parte del sistema operativo o viene usato esclusivamente dal sistema operativo.
Temporaneo Costante di enumerazione Il file è temporaneo. I file system tentano di mantenere tutti i dati in memoria per un accesso più rapido anziché scaricare nuovamente i dati nell'archiviazione di massa. L'applicazione dovrebbe eliminare un file temporaneo quando non è più necessario.
ReparsePoint Costante di enumerazione Il file contiene un punto di analisi, ovvero un blocco di dati definiti dall'utente associato a un file o una directory.

In PowerShell questo tipo è System.IO.FileAttributes con attributo FlagsAttribute.

Tipo regular-expression-option

Questo tipo definito dall'implementazione ha i membri accessibili seguenti, che possono essere combinati:

Membro Tipo di membro Scopo
IgnoreCase Costante di enumerazione Specifica che la corrispondenza non fa distinzione tra maiuscole e minuscole.
nessuno Costante di enumerazione Specifica che non sono state impostate opzioni.

Un'implementazione può fornire altri valori.

In PowerShell questo tipo è con System.Text.RegularExpressions.RegexOptions l'attributo FlagsAttribute . Vengono definiti i valori aggiuntivi seguenti: Compiled , , , , , , , CultureInvariant ECMAScript ExplicitCapture IgnorePatternWhitespace Multiline RightToLeft Singleline .

Tipi riferimento

Stringhe

Un valore stringa è di tipo stringa ed è una sequenza non modificabile di zero o più caratteri di tipo char, ognuno dei quali contiene un punto di codice Unicode a 16 bit con codifica UTF-16.

Il tipo string ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Length Proprietà Instance int (sola lettura) Ottiene il numero di caratteri nella stringa
ToLower Metodo instance string Crea una nuova stringa che contiene l'equivalente minuscolo
ToUpper Metodo instance string Crea una nuova stringa che contiene l'equivalente maiuscolo

In PowerShell esegue string il mapping a System.String .

Matrici

Tutti i tipi di matrice sono derivati dal tipo Array . Questo tipo ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Length Proprietà Instance (sola lettura) INT Numero di elementi nella matrice
Classifica Proprietà Instance (sola lettura) INT Numero di dimensioni nella matrice
Copia Metodo statico void/see Purpose column

Copia un intervallo di elementi da una matrice a un'altra. Esistono quattro versioni, in cui source è la matrice di origine, destination è la matrice di destinazione, count è il numero di elementi da copiare e sourceIndex e destinationIndex sono le posizioni di partenza nelle rispettive matrici:

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 Metodo di istanza (sola lettura) int/none

Numero di elementi in una dimensione specificata

GetLength(int dimension)

Per altre informazioni sulle matrici, vedere §9.

In PowerShell esegue Array il mapping a System.Array .

Tabelle hash

Il tipo Hashtable ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Conteggio Proprietà Instance INT Ottiene il numero di coppie chiave/valore nella tabella Hashtable
Chiavi Proprietà Instance Definito dall'implementazione Ottiene una raccolta di tutte le chiavi
Valori Proprietà Instance Definito dall'implementazione Ottiene una raccolta di tutti i valori
Rimuovi Metodo instance void/none Rimuove la chiave/valore designata

Per altre informazioni sulle tabelle hash, vedere la sezione "10".

In PowerShell esegue Hashtable il mapping a System.Collections.Hashtable . Hashtable Gli elementi vengono archiviati in un oggetto di tipo DictionaryEntry e le raccolte restituite da Keys e Values sono di tipo ICollection .

Tipo xml

Il tipo xml implementa w3C Document Object Model (DOM) Level 1 Core e Core DOM Level 2. Il DOM è una rappresentazione dell'albero in memoria (cache) di un documento XML e consente la navigazione e la modifica di questo documento. Questo tipo supporta l'operatore di indice [] ({7.1.4.4).

In PowerShell esegue xml il mapping a System.Xml.XmlDocument .

Tipo regex

Il tipo regex fornisce strumenti per supportare l'elaborazione di espressioni regolari. Viene usato per vincolare il tipo di un parametro (\5.3) il cui argomento corrispondente potrebbe contenere un'espressione regolare.

In PowerShell esegue regex il mapping a System.Text.RegularExpressions.Regex .

Tipo di riferimento

In genere, gli argomenti vengono passati ai comandi per valore. Nel caso di un argomento con un tipo di valore, viene passata una copia del valore. Nel caso di un argomento con un tipo riferimento, viene passata una copia del riferimento.

Type ref fornisce i macchinari per consentire il passare argomenti ai comandi per riferimento, in modo che i comandi possano modificare il valore dell'argomento. Type ref ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Valore Proprietà Instance (lettura-scrittura) Tipo del valore a cui si fa riferimento. Ottiene o imposta il valore a cui si fa riferimento.

Si consideri la definizione e la chiamata di funzione seguenti:

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

Si consideri il caso in cui $number è vincolato al tipo:

[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

Come illustrato, sia l'argomento che il parametro corrispondente devono essere dichiarati ref .

In PowerShell esegue ref il mapping a System.Management.Automation.PSReference .

Tipo di blocco di script

Type scriptblock rappresenta un blocco precompilato di testo script (Sezione 7.1.8) che può essere usato come singola unità. Ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Attributi Proprietà Instance (sola lettura) Raccolta di attributi Ottiene gli attributi del blocco di script.
File Proprietà Instance (sola lettura) string Ottiene il nome del file in cui è definito il blocco di script.
Modulo Proprietà Instance (sola lettura) implementazione definita (?4.5.12) Ottiene informazioni sul modulo in cui è definito il blocco di script.
GetNewClosure Metodo di istanza scriptblock
/none
Recupera un blocco di script associato a un modulo. Tutte le variabili locali presenti nel contesto del chiamante verranno copiate nel modulo.
Invoke Metodo di istanza Raccolta di oggetti/oggetti[] Richiama il blocco di script con gli argomenti specificati e restituisce i risultati.
InvokeReturnAsIs Metodo di istanza object/object[] Richiama il blocco di script con gli argomenti specificati e restituisce tutti gli oggetti generati.
Crea Metodo statico scriptblock
/string
Crea un nuovo oggetto scriptblock che contiene lo script specificato.

In PowerShell esegue scriptblock il mapping a System.Management.Automation.ScriptBlock . Invoke restituisce una raccolta di PsObject .

Tipo matematico

Type math fornisce l'accesso ad alcune costanti e metodi utili nei calcoli matematici. Ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
E Proprietà statica (sola lettura) double Base logaritmica naturale
PI Proprietà statica (sola lettura) double Rapporto tra la circonferenza di un cerchio e il diametro
Abs Metodo statico numeric/numeric Valore assoluto (il tipo restituito è lo stesso del tipo dell'argomento passato)
Acos Metodo statico double/double Angolo il cui coseno è il numero specificato
Asin Metodo statico double/double Angolo il cui seno è il numero specificato
Atan Metodo statico double/double Angolo la cui tangente è il numero specificato
Atan2 Metodo statico double/double y,double x Angolo la cui tangente è il quoziente di due numeri specificati x e y
Ceiling Metodo statico

decimal/decimal

double/double

numero intero più piccolo maggiore o uguale al numero specificato
Cos Metodo statico double/double Coseno dell'angolo specificato
Cosh Metodo statico double/double Coseno iperbolico dell'angolo specificato
Exp Metodo statico double/double e elevato alla potenza specificata
Piano Metodo statico

decimal/decimal

double/double

Intero più grande minore o uguale al numero specificato
Log Metodo statico

double/double number

double/double number, double base

Logaritmo del numero con base e o base base
Log10 Metodo statico double/double Logaritmo in base 10 di un numero specificato
Max Metodo statico numeric/numeric Maggiore di due numeri specificati (il tipo restituito è uguale al tipo degli argomenti passati)
Min Metodo statico numeric/numeric, numeric Minore di due numeri specificati (il tipo restituito è uguale al tipo degli argomenti passati)
Pow Metodo statico double/double x, double y Numero x specificato elevato alla potenza y specificata
Sin Metodo statico double/double Seno dell'angolo specificato
Sinh Metodo statico double/double Seno iperbolico dell'angolo specificato
Sqrt Metodo statico double/double Radice quadrata di un numero specificato
Tan Metodo statico double/double Tangente dell'angolo specificato
Tanh Metodo statico double/double Tangente iperbolica dell'angolo specificato

In PowerShell esegue Math il mapping a System.Math .

Tipo ordinato

Type ordered è uno pseudo tipo usato solo per le conversioni.

Tipo pscustomobject

Type pscustomobject è uno pseudo tipo usato solo per le conversioni.

Tipi generici

Diversi linguaggi di programmazione e ambienti forniscono tipi che possono essere specializzati. Molti di questi tipi sono definiti tipi di contenitore, in quanto le istanze di possono contenere oggetti di altro tipo. Si consideri un tipo denominato Stack che può rappresentare uno stack di valori, che può essere inserito e estratto. In genere, l'utente di uno stack vuole archiviare un solo tipo di oggetto nello stack. Tuttavia, se il linguaggio o l'ambiente non supporta la specializzazione dei tipi, è necessario che siano implementate più varianti distinte del tipo Stack anche se eseguono tutte la stessa attività, solo con elementi di tipo diversi.

La specializzazione dei tipi consente l'implementazione di un tipo generico in modo che possa essere vincolato alla gestione di alcuni subset di tipi quando viene usato. Ad esempio,

  • Un tipo di stack generico specializzato per contenere stringhe può essere scritto come Stack[string] .
  • Un tipo di dizionario generico specializzato per contenere chiavi int con valori stringa associati può essere scritto come Dictionary[int,string] .
  • Uno stack di stringhe può essere scritto come Stack[Stack[string]] .

Anche se PowerShell non definisce tipi generici predefiniti, può usare tali tipi se vengono forniti dall'ambiente host. Vedere la sintassi in .7.1.10.

Il nome completo per il tipo Stack[string] suggerito in precedenza è System.Collections.Generic.Stack[string] . Il nome completo per il tipo Dictionary[int,string] suggerito in precedenza è System.Collections.Generic.Dictionary[int,string] .

Tipi anonimi

In alcuni casi, un'implementazione di PowerShell crea oggetti di un tipo e tali oggetti hanno membri accessibili per lo script. Tuttavia, il nome effettivo di tali tipi non deve essere specificato, purché i membri accessibili siano sufficientemente necessari per l'uso. In altri casi, gli script possono salvare oggetti di tali tipi e accedere ai relativi membri senza conoscere effettivamente i nomi di tali tipi. Nelle sottosezioni seguenti vengono specificati questi tipi.

Tipo di descrizione del provider

Questo tipo incapsula lo stato di un provider. Include i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Unità Proprietà Instance (sola lettura) Implementazione definita (?4.5.2) Raccolta di oggetti di descrizione dell'unità
Nome Proprietà Instance (sola lettura) string Nome del provider

In PowerShell questo tipo è System.Management.Automation.ProviderInfo .

Tipo di descrizione unità

Questo tipo incapsula lo stato di un'unità. Ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
CurrentLocation Proprietà Instance (lettura-scrittura) string Posizione di lavoro corrente (Sezione 3.1.4) dell'unità
Descrizione Proprietà Instance (lettura-scrittura) string Descrizione dell'unità
Nome Proprietà Instance (sola lettura) string Nome dell'unità
Radice Proprietà Instance (sola lettura) string Nome dell'unità

In PowerShell questo tipo è System.Management.Automation.PSDriveInfo .

Tipo di descrizione della variabile

Questo tipo incapsula lo stato di una variabile. Ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Attributi Proprietà Instance (sola lettura) Implementazione definita Raccolta di attributi
Descrizione Proprietà Instance (lettura/scrittura) string Descrizione assegnata alla variabile tramite i cmdlet New-Variable (\13.37) o Set-Variable (\13.50).
Modulo Proprietà Instance (sola lettura) Implementazione definita (?4.5.12) Modulo da cui è stata esportata questa variabile
ModuleName Proprietà Instance (sola lettura) string Modulo in cui è stata definita questa variabile
Nome Proprietà Instance (sola lettura) string Nome assegnato alla variabile al momento della creazione nel linguaggio di PowerShell o tramite i cmdlet New-Variable (\13.37) e Set-Variable (\13.50).
Opzioni Proprietà Instance (lettura/scrittura) string Opzioni assegnate alla variabile tramite i cmdlet New-Variable (\13.37) o Set-Variable (\13.50).
Valore Proprietà Instance (lettura/scrittura) object Valore assegnato alla variabile quando è stata assegnata nel linguaggio di PowerShell o tramite i cmdlet New-Variable (\13.37) e Set-Variable (\13.50).

In PowerShell questo tipo è System.Management.Automation.PSVariable .

Windows PowerShell: Il tipo della raccolta di attributi è System.Management.Automation.PSVariableAttributeCollection.

Tipo di descrizione alias

Questo tipo incapsula lo stato di un alias. Include i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
CommandType Proprietà Instance (sola lettura) Implementazione definita Deve essere confrontato con "Alias".
Definizione Proprietà Instance (sola lettura) string Comando o alias a cui è stato assegnato l'alias tramite i cmdlet New-Alias (Sezione 13.33) o Set-Alias (Sezione 13.46).
Descrizione Proprietà Instance (lettura-scrittura) string Descrizione assegnata all'alias tramite i cmdlet New-Alias (Sezione 13.33) o Set-Alias (Sezione 13.46).
Modulo Proprietà Instance (sola lettura) Implementazione definita (Sezione 4.5.12) Modulo da cui è stato esportato questo alias
ModuleName Proprietà Instance (sola lettura) string Modulo in cui è stato definito questo alias
Nome Proprietà Instance (sola lettura) string Nome assegnato all'alias al momento della creazione tramite i cmdlet New-Alias (Sezione 13.33) o Set-Alias (Sezione 13.46).
Opzioni Proprietà Instance (lettura-scrittura) string Le opzioni assegnate all'alias tramite i cmdlet New-Alias (Sezione 13.33) o Set-Alias (Sezione 13.46).
OutputType Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Specifica i tipi dei valori restituiti dal comando a cui fa riferimento l'alias.
Parametri Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Parametri del comando.
Set di parametri Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Informazioni sui set di parametri associati al comando.
ReferencedCommand Proprietà Instance (sola lettura) Implementazione definita Informazioni sul comando a cui fa immediatamente riferimento questo alias.
ResolvedCommand Proprietà Instance (sola lettura) Implementazione definita Informazioni sul comando in cui l'alias viene risolto.

In PowerShell questo tipo è System.Management.Automation.AliasInfo .

Tipo di descrizione della posizione di lavoro

Questo tipo incapsula lo stato di una posizione di lavoro. Include i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Unità Proprietà Instance (sola lettura) Implementazione definita (Sezione 4.5.2) Oggetto descrizione unità
Percorso Proprietà Instance (sola lettura) string Posizione di lavoro
Provider Proprietà Instance (sola lettura) Implementazione definita (Sezione 4.5.1) Provider
ProviderPath Proprietà Instance (sola lettura) string Percorso corrente del provider

Uno stack di posizioni di lavoro è una raccolta di oggetti posizione di lavoro, come descritto in precedenza.

In PowerShell una posizione di lavoro corrente è rappresentata da un oggetto di tipo System.Management.Automation.PathInfo . Uno stack di posizioni di lavoro è rappresentato da un oggetto di tipo System.Management.Automation.PathInfoStack , che è una raccolta di oggetti PathInfo .

Tipo di descrizione della variabile di ambiente

Questo tipo incapsula lo stato di una variabile di ambiente. Ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Nome Proprietà Instance (lettura-scrittura) string Nome della variabile di ambiente
Valore Proprietà Instance (lettura-scrittura) string Valore della variabile di ambiente

In PowerShell questo tipo è System.Collections.DictionaryEntry . Il nome della variabile corrisponde alla chiave del dizionario. Il valore della variabile di ambiente corrisponde al valore del dizionario. Name è AliasProperty un oggetto che equivale a Key.

Tipo di descrizione dell'applicazione

Questo tipo incapsula lo stato di un'applicazione. Include i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
CommandType Proprietà Instance (sola lettura) Implementazione definita Deve essere uguale a "Application".
Definizione Proprietà Instance (sola lettura) string Descrizione dell'applicazione.
Estensione Proprietà Instance (lettura/scrittura) string Estensione del file dell'applicazione.
Modulo Proprietà Instance (sola lettura) Implementazione definita (?4.5.12) Modulo che definisce questo comando.
ModuleName Proprietà Instance (sola lettura) string Nome del modulo che definisce il comando.
Nome Proprietà Instance (sola lettura) string Nome del comando.
OutputType Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Specifica i tipi dei valori restituiti dal comando.
Parametri Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Parametri del comando.
Set di parametri Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Informazioni sui set di parametri associati al comando.
Percorso Proprietà Instance (sola lettura) string Ottiene il percorso del file dell'applicazione.

In PowerShell questo tipo è System.Management.Automation.ApplicationInfo .

Tipo di descrizione del cmdlet

Questo tipo incapsula lo stato di un cmdlet. Ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
CommandType Proprietà Instance (sola lettura) Implementazione definita Deve essere confrontato con "Cmdlet".
DefaultParameterSet Proprietà Instance (sola lettura) Implementazione definita Set di parametri predefinito usato se PowerShell non è in grado di determinare il set di parametri da usare in base agli argomenti forniti.
Definizione Proprietà Instance (sola lettura) string Descrizione del cmdlet.
FileGuida Proprietà Instance (lettura/scrittura) string Percorso del file della Guida per il cmdlet.
ImplementingType Proprietà Instance (lettura/scrittura) Implementazione definita Tipo che implementa il cmdlet.
Modulo Proprietà Instance (sola lettura) Implementazione definita (?4.5.12) Modulo che definisce questo cmdlet.
ModuleName Proprietà Instance (sola lettura) string Nome del modulo che definisce il cmdlet.
Nome Proprietà Instance (sola lettura) string Nome del cmdlet.
Sostantivo Proprietà Instance (sola lettura) string Nome del cmdlet.
OutputType Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Specifica i tipi dei valori restituiti dal cmdlet.
Parametri Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Parametri del cmdlet.
Set di parametri Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Informazioni sui set di parametri associati al cmdlet.
Verbo Proprietà Instance (sola lettura) string Nome del verbo del cmdlet.
PSSnapIn Proprietà Instance (sola lettura) Implementazione definita Windows PowerShell: informazioni sullo snap-in di Windows PowerShell usato per registrare il cmdlet.

In PowerShell questo tipo è System.Management.Automation.CmdletInfo .

Tipo di descrizione dello script esterno

Questo tipo incapsula lo stato di uno script esterno(uno che è direttamente eseguibile da PowerShell, ma non è incorporato). Ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
CommandType Proprietà Instance (sola lettura) Implementazione definita Deve essere uguale a "ExternalScript".
Definizione Proprietà Instance (sola lettura) string Definizione dello script.
Modulo Proprietà Instance (sola lettura) Implementazione definita (?4.5.12) Modulo che definisce questo script.
ModuleName Proprietà Instance (sola lettura) string Nome del modulo che definisce lo script.
Nome Proprietà Instance (sola lettura) string Il nome dello script.
OriginalEncoding Proprietà Instance (sola lettura) Implementazione definita Codifica originale utilizzata per convertire i caratteri dello script in byte.
OutputType Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Specifica i tipi dei valori restituiti dallo script.
Parametri Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Parametri dello script.
Set di parametri Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Informazioni sui set di parametri associati allo script.
Percorso Proprietà Instance (sola lettura) string Percorso del file di script.
ScriptBlock Proprietà Instance (sola lettura) scriptblock Script esterno.
ScriptContents Proprietà Instance (sola lettura) string Contenuto originale dello script.

In PowerShell questo tipo è System.Management.Automation.ExternalScriptInfo .

Tipo di descrizione della funzione

Questo tipo incapsula lo stato di una funzione. Ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
CmdletBinding Proprietà Instance (sola lettura) bool Indica se la funzione usa la stessa associazione di parametri utilizzata da cmdlet compilati (vedere §12.3.5).
CommandType Proprietà Instance (sola lettura) Implementazione definita Può essere confrontato per verificare l'uguaglianza con "Function" o "Filter" per vedere quali di questi oggetti rappresentano.
DefaultParameterSet Proprietà Instance (sola lettura) string Specifica il set di parametri da usare se non può essere determinato dagli argomenti (vedere la sezione "12.3.5").
Definizione Proprietà Instance (sola lettura) string Versione stringa di ScriptBlock
Descrizione Proprietà Instance (lettura/scrittura) string Descrizione della funzione.
Modulo Proprietà Instance (sola lettura) Implementazione definita (?4.5.12) Modulo da cui è stata esportata questa funzione
ModuleName Proprietà Instance (sola lettura) string Modulo in cui è stata definita questa funzione
Nome Proprietà Instance (sola lettura) string Nome della funzione
Opzioni Proprietà Instance (lettura/scrittura) Implementazione definita Opzioni di ambito per la funzione (\3.5.4).
OutputType Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Specifica i tipi dell'output dei valori, in ordine (vedere la sezione "12.3.6").
Parametri Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Specifica i nomi dei parametri, nell'ordine indicato. Se la funzione agisce come un cmdlet (vedere CmdletBinding sopra) i parametri comuni (Sezione 13.56) vengono inclusi alla fine della raccolta.
Set di parametri Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Informazioni sui set di parametri associati al comando. Per ogni parametro, il risultato mostra il nome e il tipo del parametro e indica se il parametro è obbligatorio, in base alla posizione o a un parametro switch. Se la funzione agisce come un cmdlet (vedere CmdletBinding sopra) i parametri comuni (Sezione 13.56) vengono inclusi alla fine della raccolta.
ScriptBlock Proprietà Instance (sola lettura) scriptblock (Sezione 4.3.6) Corpo della funzione

In PowerShell questo tipo è System.Management.Automation.FunctionInfo .

  • CommandType ha il tipo System.Management.Automation.CommandTypes.
  • Options ha il tipo System.Management.Automation.ScopedItemOptions.
  • OutputType ha il tipo System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.PSTypeName,System.Management.Automation]].
  • Parameters ha il tipo System.Collections.Generic.Dictionary``2[[System.String,mscorlib],[System.Management.Automation.ParameterMetadata,System.Management.Automation]].
  • ParameterSets ha il tipo System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.CommandParameterSetInfo,System.Management.Automation]].
  • La visibilità è di tipo System.Management.Automation.SessionStateEntryVisibility .
  • PowerShell ha anche una proprietà denominata Visibility.

Tipo di descrizione del filtro

Questo tipo incapsula lo stato di un filtro. Ha lo stesso set di membri accessibili del tipo di descrizione della funzione (Sezione 4.5.10).

In PowerShell questo tipo è System.Management.Automation.FilterInfo . Ha lo stesso set di proprietà System.Management.Automation.FunctionInfo di (?4.5.11).

Tipo di descrizione del modulo

Questo tipo incapsula lo stato di un modulo. Include i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Descrizione Proprietà Instance (lettura/scrittura) string Descrizione del modulo (impostata dal manifesto)
ModuleType Proprietà Instance (sola lettura) Implementazione definita Tipo di modulo (manifesto, script o binario)
Nome Proprietà Instance (sola lettura) string Nome del modulo
Percorso Proprietà Instance (sola lettura) string Percorso del modulo

In PowerShell questo tipo è System.Management.Automation.PSModuleInfo . Il tipo di ModuleType è System.Management.Automation.ModuleType.

Tipo di descrizione dell'oggetto personalizzato

Questo tipo incapsula lo stato di un oggetto personalizzato. Non dispone di membri accessibili.

In PowerShell questo tipo è System.Management.Automation.PSCustomObject . I cmdlet Import-Module e possono generare un oggetto di questo New-Object tipo.

Tipo di descrizione del comando

La variabile automatica $PsCmdlet è un oggetto che rappresenta il cmdlet o la funzione in esecuzione. Il tipo di questo oggetto è definito dall'implementazione. ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
ParameterSetName Proprietà Instance (sola lettura) string Nome del set di parametri corrente (vedere ParameterSetName)
ShouldContinue Metodo di istanza

Overloaded

/bool

Richiede la conferma di un'operazione all'utente.
ShouldProcess Metodo di istanza

Overloaded

/bool

Richiede conferma all'utente prima che venga eseguita un'operazione.

In PowerShell questo tipo è System.Management.Automation.PSScriptCmdlet.

Tipo di descrizione del record di errore

La variabile automatica $Error contiene una raccolta di record di errore che rappresentano gli errori recenti (Sezione 3.12). Anche se il tipo di questa raccolta non è specificato, supporta la pedice per ottenere l'accesso ai singoli record di errore.

In PowerShell il tipo di raccolta è System.Collections.ArrayList . Il tipo di un singolo record di errore nella raccolta è System.Management.Automation.ErrorRecord . Questo tipo ha le proprietà pubbliche seguenti:

  • CategoryInfo: ottiene informazioni sulla categoria dell'errore.
  • ErrorDetails: ottiene e imposta informazioni più dettagliate sull'errore, ad esempio un messaggio di errore di sostituzione.
  • Exception: ottiene l'eccezione associata a questo record di errore.
  • FullyQualifiedErrorId: ottiene l'identificatore di errore completo per questo record di errore.
  • InvocationInfo: ottiene informazioni sul comando richiamato quando si è verificato l'errore.
  • PipelineIterationInfo: ottiene lo stato della pipeline quando è stato creato questo record di errore
  • TargetObject: ottiene l'oggetto elaborato quando si è verificato l'errore.

Tipo di descrizione dell'enumeratore

Diverse variabili sono enumeratori per le raccolte (?4). La variabile automatica $foreach è l'enumeratore creato per qualsiasi foreach istruzione. La variabile automatica $input è l'enumeratore per una raccolta recapitata a una funzione dalla pipeline. La variabile automatica $switch è l'enumeratore creato per qualsiasi switch istruzione.

Il tipo di un enumeratore è definito dall'implementazione; include i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Corrente Proprietà Instance (sola lettura) object Ottiene l'elemento corrente della raccolta. Se l'enumeratore non è attualmente posizionato in corrispondenza di un elemento della raccolta, il comportamento è definito dall'implementazione.
MoveNext Metodo di istanza Nessuno/bool Sposta l'enumeratore all'elemento successivo della raccolta. Restituisce $true se l'enumeratore è stato correttamente avanzato all'elemento successivo. $false se l'enumeratore ha superato la fine della raccolta.

In PowerShell questi membri sono definiti nell'interfaccia System.IEnumerator , implementata dai tipi identificati di seguito. Se l'enumeratore non è attualmente posizionato in corrispondenza di un elemento della raccolta, viene generata un'eccezione InvalidOperationException di tipo . Per $foreach , questo tipo è System.Array+SZArrayEnumerator . Per $input , questo tipo è System.Collections.ArrayList+ArrayListEnumeratorSimple . Per $switch , questo tipo è System.Array+SZArrayEnumerator .

Tipo di descrizione della directory

Il cmdlet New-Item (Sezione 13.34) può creare elementi di vari tipi, tra cui directory FileSystem. Il tipo di un oggetto descrizione directory è definito dall'implementazione. ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Attributi Proprietà Instance (lettura-scrittura) Implementazione definita (Sezione 4.2.6.3) Ottiene o imposta uno o più attributi dell'oggetto directory.
CreationTime Proprietà Instance (lettura-scrittura) Implementazione definita (Sezione 4.5.19) Ottiene e imposta l'ora di creazione dell'oggetto directory.
Estensione Proprietà instance (sola lettura) string Ottiene la parte dell'estensione del nome della directory.
FullName Proprietà Instance (sola lettura) string Ottiene il percorso completo della directory.
LastWriteTime Proprietà Instance (lettura-scrittura) Implementazione definita (Sezione 4.5.19) Ottiene e imposta l'ora dell'ultima scrittura della directory.
Nome Proprietà instance (sola lettura) string Ottiene il nome della directory.

In PowerShell questo tipo è System.IO.DirectoryInfo . Il tipo della proprietà Attributes è System.IO.FileAttributes .

Tipo di descrizione file

Il cmdlet New-Item (\13.34) può creare elementi di vario tipo, inclusi i file FileSystem. Il tipo di un oggetto descrizione file è definito dall'implementazione; include i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Attributi Proprietà Instance (lettura/scrittura) Implementazione definita (\4.2.6.3) Ottiene o imposta uno o più attributi dell'oggetto file.
Basename Proprietà Instance (sola lettura) string Ottiene il nome del file esclusa l'estensione.
CreationTime Proprietà Instance (lettura/scrittura) Implementazione definita (?4.5.19) Ottiene e imposta l'ora di creazione dell'oggetto file.
Estensione Proprietà Instance (sola lettura) string Ottiene la parte dell'estensione del nome file.
FullName Proprietà Instance (sola lettura) string Ottiene il percorso completo del file.
LastWriteTime Proprietà Instance (lettura/scrittura) Implementazione definita (Sezione 4.5.19) Ottiene e imposta l'ora dell'ultima scrittura del file.
Length Proprietà instance (sola lettura) long Ottiene la dimensione del file in byte.
Nome Proprietà instance (sola lettura) string Recupera il nome del file.
VersionInfo Proprietà instance (sola lettura) Implementazione definita Windows PowerShell: Questa Proprietà Script restituisce un oggetto System.Diagnostics.FileVersionInfo per il file.

In PowerShell questo tipo è System.IO.FileInfo .

Date-Time tipo di descrizione

Il tipo di un oggetto descrizione data-ora è definito dall'implementazione; ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Giorno Proprietà Instance (sola lettura) INT Ottiene il componente giorno del mese rappresentato da questa istanza di .
Ora Proprietà Instance (sola lettura) INT Ottiene il componente di ora della data rappresentata dall'istanza.
Minuto Proprietà Instance (sola lettura) INT Ottiene il componente di minuti della data rappresentata dall'istanza.
Month Proprietà Instance (sola lettura) INT Ottiene il componente di mese della data rappresentata dall'istanza.
Second Proprietà Instance (sola lettura) INT Ottiene il componente di secondi della data rappresentata dall'istanza.
Year Proprietà Instance (sola lettura) INT Ottiene il componente dell'anno della data rappresentata dall'istanza.

Un oggetto di questo tipo può essere creato dal cmdlet Get-Date (Sezione 13.18).

In PowerShell questo tipo è System.DateTime .

Group-Info descrizione

Il tipo di un oggetto descrizione informazioni gruppo è definito dall'implementazione; include i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Conteggio Proprietà Instance (sola lettura) INT Ottiene il numero di elementi nel gruppo.
Gruppo Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Ottiene gli elementi del gruppo.
Nome Proprietà Instance (sola lettura) string Ottiene il nome del gruppo.
Valori Proprietà Instance (sola lettura) Raccolta definita dall'implementazione Ottiene i valori degli elementi del gruppo.

Un oggetto di questo tipo può essere creato dal cmdlet Group-Object (?13.27).

In PowerShell questo tipo è Microsoft.PowerShell.Commands.GroupInfo .

Tipo di descrizione Generic-Measure-Info

Il tipo di un oggetto generic-measure-info description è definito dall'implementazione; include i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Media Proprietà Instance (sola lettura) double Ottiene la media dei valori delle proprietà misurate.
Conteggio Proprietà Instance (sola lettura) INT Ottiene il numero di oggetti con le proprietà specificate.
Massimo Proprietà Instance (sola lettura) double Ottiene il valore massimo delle proprietà specificate.
Minima Proprietà Instance (sola lettura) double Ottiene il valore minimo delle proprietà specificate.
Proprietà Proprietà Instance (sola lettura) string Ottiene la proprietà da misurare.
Somma Proprietà Instance (sola lettura) double Ottiene la somma dei valori delle proprietà specificate.

Un oggetto di questo tipo può essere creato dal cmdlet Measure-Object (Sezione 13.31).

In PowerShell questo tipo è Microsoft.PowerShell.Commands.GenericMeasureInfo .

Tipo di descrizione Text-Measure-Info

Il tipo di un oggetto di descrizione text-info è definito dall'implementazione; ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Caratteri Proprietà Instance (sola lettura) INT Ottiene il numero di caratteri nell'oggetto di destinazione.
Linee Proprietà Instance (sola lettura) INT Ottiene il numero di righe nell'oggetto di destinazione.
Proprietà Proprietà Instance (sola lettura) string Ottiene la proprietà da misurare.
Parole Proprietà Instance (sola lettura) INT Ottiene il numero di parole nell'oggetto di destinazione.

Un oggetto di questo tipo può essere creato dal cmdlet Measure-Object (?13.31).

In PowerShell questo tipo è Microsoft.PowerShell.Commands.TextMeasureInfo .

Tipo di credenziali

Un oggetto credenziale può quindi essere usato in varie operazioni di sicurezza. Il tipo di un oggetto credenziale è definito dall'implementazione; include i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Password Proprietà Instance (sola lettura) Implementazione definita Ottiene la password.
Nome utente Proprietà Instance (sola lettura) string Ottiene il nome utente.

Un oggetto di questo tipo può essere creato dal cmdlet Get-Credential (?13.17).

In PowerShell questo tipo è System.Management.Automation.PSCredential .

Tipo di designazione del metodo

Il tipo di un designatore di metodo è definito dall'implementazione; include i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Invoke Metodo di istanza object/variable number and type Accetta un numero variabile di argomenti e chiama indirettamente il metodo a cui fa riferimento il designatore del metodo padre, passando gli argomenti.

Un oggetto di questo tipo può essere creato da un'espressione di chiamata (Sezione 7.1.3).

In PowerShell questo tipo è System.Management.Automation.PSMethod.

Tipo di definizione del membro

Questo tipo incapsula la definizione di un membro. Ha i membri accessibili seguenti:

Membro Tipo di membro Tipo Scopo
Definizione Proprietà Instance (sola lettura) string Ottiene la definizione del membro.
Membertype Proprietà Instance (sola lettura) Implementazione definita Ottiene il tipo di PowerShell del membro.
Nome Proprietà Instance (sola lettura) string Ottiene il nome del membro.
TypeName Proprietà Instance (sola lettura) string Ottiene il nome del tipo del membro.

In PowerShell questo tipo è Microsoft.PowerShell.Commands.MemberDefinition .

Estensione e adattamento del tipo

Un'implementazione di PowerShell include una famiglia di tipi di base (documentati in questo capitolo) ognuno dei quali contiene il proprio set di membri di base. Tali membri possono essere metodi o proprietà e possono essere membri di istanza o statici. Ad esempio, i membri di base della stringa di tipo (\4.3.1) sono la proprietà di istanza Length e i metodi di istanza ToLower e ToUpper.

Quando viene creato, un oggetto contiene tutte le proprietà dell'istanza del tipo di tale oggetto e i metodi di istanza di tale tipo possono essere chiamati su tale oggetto. Un oggetto può essere personalizzato tramite l'aggiunta di membri di istanza in fase di esecuzione. Il risultato è denominato oggetto personalizzato. Tutti i membri aggiunti a un'istanza esistono solo per la durata di tale istanza. altre istanze dello stesso tipo di core non sono interessate.

Il set di membri di base di un tipo può essere ampliato con l'aggiunta dei tipi di membri seguenti:

  • membri adattati, tramite ETS (Extended Type System), la maggior parte dei quali non è specificata.
  • membri estesi, tramite il cmdlet Add-Member (?13.2).

In PowerShell è anche possibile aggiungere membri estesi tramite types.ps1xml file. I membri adattati ed estesi sono collettivamente denominati membri sintetici.

ETS aggiunge i membri seguenti a tutti gli oggetti di PowerShell: psbase, psadapted, psextended e pstypenames. Per altre informazioni su questi membri, vedere i parametri Force e View nel cmdlet Get-Member (?13.22).

Un membro di istanza può nascondere un membro esteso e/o adattato con lo stesso nome e un membro esteso può nascondere un membro adattato. In questi casi, i set di membri psadapted e psextended possono essere usati per accedere a tali membri nascosti.

Se un types.ps1xml oggetto specifica un membro denominato Supporta, fornisce l'accesso solo obj.psextended a tale membro e non a un membro aggiunto tramite Add-Member .

Esistono tre modi per creare un oggetto personalizzato con un nuovo membro M:

  1. Questo approccio può essere usato per aggiungere uno o più membri NoteProperty.

    $x = New-Object PsObject -Property @{M = 123}`
    
  2. Questo approccio può essere usato per aggiungere membri NoteProperty o ScriptMethod.

    $x = New-Module -AsCustomObject {$M = 123 ; Export-ModuleMember --Variable M}`
    
  3. Questo approccio può essere usato per aggiungere qualsiasi tipo di membro.

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

PsObject è il tipo di base di tutti i tipi di PowerShell.