Compartir a través de


4. Tipos

Nota editorial

Importante

La especificación del lenguaje Windows PowerShell 3.0 se publicó en diciembre de 2012 y se basa en Windows PowerShell 3.0. Esta especificación no refleja el estado actual de PowerShell. No hay ningún plan para actualizar esta documentación para reflejar el estado actual. Esta documentación se presenta aquí para obtener referencia histórica.

El documento de especificación está disponible como un documento de Microsoft Word del Centro de descarga de Microsoft en: https://www.microsoft.com/download/details.aspx?id=36389 Ese documento de Word se ha convertido para su presentación aquí en Microsoft Learn. Durante la conversión, se han realizado algunos cambios editoriales para dar cabida al formato de la plataforma Docs. Se han corregido algunos errores tipográficos y menores.

En PowerShell, cada valor tiene un tipo y los tipos se dividen en una de las dos categorías principales: tipos de valor y tipos de referencia . Tenga en cuenta el tipo int, que es típico de los tipos de valor. Un valor de tipo int es completamente independiente; todos los bits necesarios para representar ese valor se almacenan en ese valor y cada patrón de bits de ese valor representa un valor válido para su tipo. Ahora, considere el tipo de matriz int[], que es típico de los tipos de referencia. Un valor denominado de un tipo de matriz puede contener una referencia a un objeto que contiene realmente los elementos de la matriz o la referencia null cuyo valor es $null. La distinción importante entre las dos categorías de tipos se muestra mejor por las diferencias en su semántica durante la asignación. Por ejemplo

$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

Como podemos ver, la asignación de un valor de tipo de referencia implica una copia superficial ; es decir, una copia de la referencia al objeto en lugar de su valor real. Por el contrario, una copia profunda también requiere realizar una copia del objeto.

Un tipo numérico es uno que permite la representación de valores enteros o fraccionarios y que admite realizar operaciones aritméticas con esos valores. El conjunto de tipos numéricos incluye los tipos enteros (§4.2.3) y el número real (§4.2.4), pero no incluye bool (§4.2.1) o char (§4.2.2). Una implementación puede proporcionar otros tipos numéricos (como byte con signo, entero sin signo e enteros de otros tamaños).

Una colección es un grupo de uno o varios elementos relacionados que no pueden tener el mismo tipo. Algunos ejemplos de tipos de colección son matrices, pilas, colas, listas y tablas hash. Un programa puede enumerar (o iterar) sobre los elementos de una colección, obteniendo acceso a cada elemento uno por uno. Las formas habituales de hacerlo son con la foreach instrucción (§8.4.4) y el cmdlet ForEach-Object . El tipo de un objeto que representa un enumerador se describe en §4.5.16.

En este capítulo, hay tablas que enumeran los miembros accesibles para un tipo determinado. En el caso de los métodos, Type se escribe con este formato: returnType/argumentTypeList. Si la lista de tipos de argumentos es demasiado larga para caber en esa columna, se muestra en la columna Propósito en su lugar.

Otros tipos enteros son SByte, Int16, UInt16, UInt32y UInt64, todo en el espacio de nombres System.

Muchas clases de colección se definen como parte de los espacios de nombres System.Collections o System.Collections.Generic. La mayoría de las clases de colección implementan las interfaces ICollection, IComparer, IEnumerable, IList, IDictionaryy IDictionaryEnumerator y sus equivalentes genéricos.

También puede usar nombres abreviados para algunos tipos. Para obtener más información, consulte about_Type_Accelerators.

4.1 Tipos especiales

4.1.1 El tipo void

No se puede crear una instancia de este tipo. Proporciona un medio para descartar un valor explícitamente mediante el operador de conversión (§7.2.9).

4.1.2 El tipo NULL

El tipo null tiene una instancia, la variable automática $null (§2.3.2.2), también conocida como valor NULL. Este valor proporciona un medio para expresar "nada" en contextos de referencia. Las características de este tipo no se especifican.

4.1.3 El tipo de objeto

Todos los tipos de PowerShell excepto el tipo null (§4.1.2) se derivan directa o indirectamente del objeto de tipo, por lo que el objeto es el tipo base final de todos los tipos no NULL. Una variable restringida (§5.3) para escribir objeto no está restringida en absoluto, ya que puede contener un valor de cualquier tipo.

4.2 Tipos de valor

4.2.1 Boolean

El tipo booleano es bool. Solo hay dos valores de este tipo, False y True, representados por las variables automáticas $false y $true, respectivamente (§2.3.2.2).

En PowerShell, bool se asigna a System.Boolean.

4.2.2 Carácter

Un valor de carácter tiene el tipo char, que es capaz de almacenar cualquier punto de código Unicode con codificación UTF-16 de 16 bits.

El tipo char tiene estos miembros accesibles:

Miembro Variante de miembro Tipo Propósito
ValorMáximo Propiedad estática (solo lectura) char El mayor valor posible de tipo char
ValorMínimo Propiedad estática (solo lectura) char El menor valor posible de tipo char
IsControl Método estático bool/char Comprueba si el carácter es un carácter de control
IsDigit Método estático bool/char Comprueba si el carácter es un dígito decimal
IsLetter Método estático bool/char Comprueba si el carácter es una letra alfabética
IsLetterOrDigit Método estático bool/char Comprueba si el carácter es un dígito decimal o una letra alfabética
IsLower Método estático bool/char Comprueba si el carácter es una letra alfabética minúscula
IsPunctuation Método estático bool/char Comprueba si el carácter es un signo de puntuación
IsUpper Método estático bool/char Comprueba si el carácter es una letra alfabética mayúscula
IsWhiteSpace Método estático bool/char Comprueba si el carácter es un carácter de espacio en blanco
ToLower Método estático char/string Convierte el carácter en minúscula
ToUpper Método estático char/string Convierte el carácter en mayúscula

Windows PowerShell: char se asigna a System.Char.

4.2.3 Entero

Hay dos tipos de entero con signo y ambos usan la representación del complemento a dos para los valores negativos:

  • Escriba int, que usa 32 bits, lo que le proporciona un intervalo de -2147483648 a +2147483647, ambos incluidos.
  • El tipo long, que usa 64 bits, lo que le da un intervalo de -9223372036854775808 a +9223372036854775807 (incluido).

El tipo int tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
ValorMáximo Propiedad estática (solo lectura) int El mayor valor posible de tipo int
ValorMínimo Propiedad estática (solo lectura) int El menor valor posible de tipo int

El tipo long tiene estos miembros accesibles:

Miembro Variante de miembro Tipo Propósito
ValorMáximo Propiedad estática (solo lectura) long El mayor valor posible de tipo long
ValorMínimo Propiedad estática (solo lectura) long El menor valor posible de tipo long

Hay un tipo entero sin signo:

  • Escriba byte, que usa 8 bits, lo que le proporciona un intervalo de 0 a 255, ambos incluidos.

El tipo byte tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
ValorMáximo Propiedad estática (solo lectura) byte El mayor valor posible de tipo byte
ValorMínimo Propiedad estática (solo lectura) byte El menor valor posible de tipo byte

En PowerShell, byte, int y long se asignan a System.Byte, System.Int32 y System.Int64, respectivamente.

4.2.4 Número real

4.2.4.1 float y double

Hay dos tipos reales (o de punto flotante):

  • El tipo float usa la representación de precisión única IEEE de 32 bits.
  • El tipo double usa la representación de precisión doble IEEE de 64 bits.

Un tercer nombre de tipo, single, es un sinónimo de tipo float; float se usa en esta especificación.

Aunque el tamaño y la representación de los tipos float y double se definen mediante esta especificación, una implementación puede usar una precisión extendida para los resultados intermedios.

El tipo float tiene estos miembros accesibles:

Miembro Variante de miembro Tipo Propósito
ValorMáximo Propiedad estática (solo lectura) flotante El mayor valor posible de tipo float
ValorMínimo Propiedad estática (solo lectura) flotante El menor valor posible de tipo float
NaN Propiedad estática (solo lectura) flotante El valor de constante Not-a-Number
NegativeInfinity Propiedad estática (solo lectura) flotante El valor de constante de infinitivo negativo
PositiveInfinity Propiedad estática (solo lectura) flotante Valor constante infinito positivo

El tipo double tiene estos miembros accesibles:

Miembro Variante de miembro Tipo Propósito
ValorMáximo Propiedad estática (solo lectura) doble El mayor valor posible de tipo double
ValorMínimo Propiedad estática (solo lectura) doble El menor valor posible de tipo double
NaN Propiedad estática (solo lectura) doble El valor de constante Not-a-Number
NegativeInfinity Propiedad estática (solo lectura) doble El valor de constante de infinitivo negativo
PositiveInfinity Propiedad estática (solo lectura) doble Valor constante infinito positivo

En PowerShell, float y double se asignan a System.Single y System.Double, respectivamente.

4.2.4.2 decimal

El tipo decimal usa una representación de 128 bits. Como mínimo, debe admitir una escala s de tal manera que 0 <= s<= al menos 28, y un rango de valores de -79228162514264337593543950335 a 79228162514264337593543950335. La representación real del decimal está definida por la implementación.

El tipo decimal tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
ValorMáximo Propiedad estática (solo lectura) decimal El mayor valor posible de tipo decimal
ValorMínimo Propiedad estática (solo lectura) decimal El valor más pequeño posible de tipo decimal

Nota

Los números reales decimales tienen una característica llamada escala, que indica el número de dígitos a la derecha del punto decimal. Por ejemplo, el valor 2.340 tiene una escala de 3 donde los ceros finales son significativos. Cuando se agregan o restan dos números reales decimales, la escala del resultado es mayor de las dos escalas. Por ejemplo, 1.0 + 2.000 es 3.000, mientras que 5.0 - 2.00 es 3.00. Cuando se multiplican dos números reales decimales, la escala del resultado es la suma de las dos escalas. Por ejemplo, 1.0 * 2.000 es 2.0000. Cuando se dividen dos números reales decimales, la escala del resultado es la escala del primero menos la escala del segundo. Por ejemplo, 4.00000/2.000 es 2.00. Sin embargo, una escala no puede ser menor que la necesaria para conservar el resultado correcto. Por ejemplo, 3.000/2.000, 3.00/2.000, 3.0/2.000 y 3/2 son 1.5.

En PowerShell, decimal se asigna a System.Decimal. La representación de decimal es la siguiente:

  • Cuando se considera una matriz de cuatro int valores, contiene los siguientes elementos:
    • El índice 0 (bits 0-31) contiene los 32 bits de orden bajo del coeficiente del decimal.
    • El índice 1 (bits 32-63) contiene los 32 bits intermedios del coeficiente del decimal.
    • El índice 2 (bits 64-95) contiene los 32 bits de orden superior del coeficiente decimal.
    • El índice 3 (bits 96-127) contiene el bit de signo y la escala, como se indica a continuación:
      • Los bits 0 a 15 son cero
      • bits 16-23 contiene la escala como un valor 0--28
      • Los bits 24 a 30 son cero
      • bit 31 es el signo (0 para positivo, 1 para negativo)

4.2.5 El tipo de conmutador

Este tipo se usa para restringir el tipo de un parámetro en un comando (§8.10.5). Si un argumento que tiene el nombre del parámetro correspondiente está presente el parámetro prueba $true; de lo contrario, prueba $false.

En PowerShell, switch se asigna a System.Management.Automation.SwitchParameter.

4.2.6 Tipos de enumeración

Un tipo de enumeración es aquel que define un conjunto de constantes con nombre que representa todos los valores posibles que se pueden asignar a un objeto de ese tipo de enumeración. En algunos casos, el conjunto de valores es tal que solo se puede representar un valor a la vez. En otros casos, el conjunto de valores son potencias distintas de dos y, mediante el operador -bor (§7.8.5), se pueden codificar varios valores en el mismo objeto.

El entorno de PowerShell proporciona una serie de tipos de enumeración, como se describe en las secciones siguientes.

4.2.6.1 Tipo Action-Preference

Este tipo definido por la implementación tiene estos miembros accesibles con valores que se excluyen mutuamente:

Miembro Variante de miembro Propósito
Continuar Constante de enumeración El tiempo de ejecución de PowerShell continuará procesando y notificará al usuario que se ha producido una acción.
Inquire Constante de enumeración El tiempo de ejecución de PowerShell dejará de procesar y le preguntará al usuario cómo debe continuar.
SilentlyContinue Constante de enumeración El tiempo de ejecución de PowerShell continuará procesando sin notificar al usuario que se ha producido una acción.
Parar Constante de enumeración El tiempo de ejecución de PowerShell dejará de procesarse cuando se produzca una acción.

En PowerShell, este tipo es System.Management.Automation.ActionPreference.

4.2.6.2 tipo Confirm-Impact

Este tipo definido por la implementación tiene estos miembros accesibles con valores que se excluyen mutuamente:

Miembro Variante de miembro Propósito
Alto Constante de enumeración La acción realizada tiene un alto riesgo de perder datos, como volver a formatear un disco duro.
Bajo Constante de enumeración La acción realizada tiene un riesgo bajo de perder datos.
Media Constante de enumeración La acción realizada tiene un riesgo medio de perder datos.
Ninguno Constante de enumeración No confirme ninguna acción (suprima todas las solicitudes de confirmación).

En PowerShell, este tipo es System.Management.Automation.ConfirmImpact.

4.2.6.3 tipo File-Attributes

Este tipo definido por la implementación tiene los siguientes miembros accesibles, que se pueden combinar:

Miembro Variante de miembro Propósito
Archivo Constante de enumeración El estado de archivo del fichero. Las aplicaciones usan este atributo para marcar los archivos de copia de seguridad o eliminación.
Comprimido Constante de enumeración El archivo está comprimido.
Dispositivo Reservado para uso futuro.
Directorio Constante de enumeración El archivo es un directorio.
Encriptado Constante de enumeración El archivo o directorio está cifrado. Para un archivo, esto significa que todos los datos del archivo están cifrados. Para un directorio, esto significa que el cifrado es el valor predeterminado para los archivos y directorios recién creados.
Escondido Constante de enumeración El archivo está oculto y, por tanto, no se incluye en una lista de directorios normal.
Normal Constante de enumeración El archivo es normal y no tiene ningún otro atributo establecido. Este atributo solo es válido si se usa solo.
NotContentIndexed Constante de enumeración El servicio de indexación de contenido del sistema operativo no indexará el archivo.
Sin conexión Constante de enumeración El archivo está sin conexión. Los datos del archivo no están disponibles inmediatamente.
ReadOnly Constante de enumeración El archivo es de solo lectura.
ReparsePoint Constante de enumeración El archivo contiene un punto de reanálisis, que es un bloque de datos definidos por el usuario asociados a un archivo o un directorio.
SparseFile Constante de enumeración El archivo es un archivo disperso. Los archivos dispersos suelen ser archivos grandes cuyos datos son principalmente ceros.
Sistema Constante de enumeración El archivo es un archivo del sistema. El archivo forma parte del sistema operativo o lo usa exclusivamente el sistema operativo.
Temporales Constante de enumeración El archivo es temporal. Los sistemas de archivos intentan mantener todos los datos en memoria para un acceso más rápido en lugar de vaciar los datos de vuelta al almacenamiento masivo. La aplicación debe eliminar un archivo temporal en cuanto ya no sea necesario.

En PowerShell, este tipo es System.IO.FileAttributes con el atributo FlagsAttribute.

4.2.6.4 Tipo Regular-Expression-Option

Este tipo definido por la implementación tiene los siguientes miembros accesibles, que se pueden combinar:

Miembro Variante de miembro Propósito
IgnoreCase Constante de enumeración Especifica que la coincidencia no distingue mayúsculas de minúsculas.
Ninguno Constante de enumeración Especifica que no se establecen opciones.

Una implementación puede proporcionar otros valores.

En PowerShell, este tipo es System.Text.RegularExpressions.RegexOptions con el atributo FlagsAttribute. Se definen los siguientes valores adicionales: Compiled, CultureInvariant, ECMAScript, ExplicitCapture, IgnorePatternWhitespace, Multiline, RightToLeft, Singleline.

4.3 Tipos de referencia

4.3.1 Cadenas

Un valor de cadena tiene tipo string y es una secuencia inmutable de cero o más caracteres de tipo char, cada uno de los cuales contiene un punto de código Unicode de 16 bits codificado en UTF-16.

El tipo string tiene estos miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Largura Propiedad de instancia int (solo lectura) Obtiene el número de caracteres de la cadena.
ToLower Método de instancia string Crea una nueva cadena que contiene el equivalente en minúsculas.
ToUpper Método de instancia string Crea una nueva cadena que contiene el equivalente en mayúsculas.

En PowerShell, string se asigna a System.String.

4.3.2 Matrices

Todos los tipos de matriz se derivan del tipo array. Este tipo tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Largura Propiedad de instancia (solo lectura) int Número de elementos de la matriz
Rango Propiedad de instancia (solo lectura) int Número de dimensiones de la matriz
Copiar Método estático void/ver la columna Purpose

Copia un intervalo de elementos de una matriz a otra. Hay cuatro versiones, donde origen es la matriz de origen, destino es la matriz de destino, recuento es el número de elementos que se van a copiar y sourceIndex y destinationIndex son las ubicaciones iniciales de sus respectivas matrices:

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 Método de instancia (solo lectura) int/ninguno

Número de elementos de una dimensión determinada

GetLength( dimensión int)

Para obtener más información sobre las matrices, consulte §9.

En PowerShell, array se asigna a System.Array.

4.3.3 Tablas hash

Type Hashtable tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Count Propiedad de instancia int Obtiene el número de pares clave-valor en la tabla hash.
Teclas Propiedad de instancia Definido por la implementación Obtiene una colección de todas las claves.
Valores Propiedad de instancia Definido por la implementación Obtiene una colección de todos los valores.
Eliminar Método de instancia vacío/ninguno Quita la clave o el valor designados.

Para obtener más información sobre las tablas hash, consulte §10.

En PowerShell, Hashtable se asigna a System.Collections.Hashtable. Hashtable elementos se almacenan en un objeto de tipo DictionaryEntryy las colecciones devueltas por Keys y Values tienen el tipo ICollection.

4.3.4 El tipo xml

El tipo xml implementa el nivel 1 principal de Document Object Model (DOM) de W3C y el nivel 2 de DOM principal. Dom es una representación de árbol en memoria (caché) de un documento XML y permite la navegación y edición de este documento. Este tipo admite el operador de subíndice [] (§7.1.4.4).

En PowerShell, xml se asigna a System.Xml.XmlDocument.

4.3.5 El tipo regex

El tipo regex proporciona maquinaria para admitir el procesamiento de expresiones regulares. Se usa para restringir el tipo de un parámetro (§5.3) cuyo argumento correspondiente podría contener una expresión regular.

En PowerShell, regex se asigna a System.Text.RegularExpressions.Regex.

4.3.6 El tipo ref

Por lo general, los argumentos se pasan a los comandos por valor. En el caso de que un argumento tenga algún tipo de valor, se pasa una copia del valor. En el caso de un argumento que tiene algún tipo de referencia, se pasa una copia de la referencia.

El tipo ref proporciona maquinaria para permitir que los argumentos se pasen a los comandos por referencia, de manera que los comandos pueden modificar el valor del argumento. El tipo ref tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Valor Propiedad de instancia (lectura y escritura) Tipo del valor al que se hace referencia. Obtiene o establece el valor al que se hace referencia.

Tenga en cuenta la siguiente definición y llamada de función:

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

Tenga en cuenta el caso en el que $number está restringido por tipos:

[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

Como se muestra, tanto el argumento como su parámetro correspondiente deben declararse ref.

En PowerShell, ref se asigna a System.Management.Automation.PSReference.

4.3.7 El tipo scriptblock

El tipo scriptblock representa un bloque precompilado de texto de script (§7.1.8) que se puede usar como una sola unidad. Tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Atributos Propiedad de instancia (solo lectura) Colección de atributos Obtiene los atributos del bloque de script.
Archivo Propiedad de instancia (solo lectura) string Obtiene el nombre del archivo en el que se define el bloque de script.
Módulo Propiedad de instancia (solo lectura) implementación definida ([§4.5.12][§4.5.12]) Obtiene información sobre el módulo en el que se define el bloque de script.
GetNewClosure Método de instancia scriptblock
/ninguno
Recupera un bloque de script enlazado a un módulo. Las variables locales que se encuentren en el contexto del autor de la llamada se copiarán en el módulo.
Invocar Método de instancia Colección de object/object[] Invoca el bloque de script con los argumentos especificados y devuelve los resultados.
InvokeReturnAsIs Método de instancia object/object[] Invoca el bloque de script con los argumentos especificados y devuelve los objetos generados.
Crear Método estático scriptblock
/string
Crea un nuevo objeto scriptblock que contiene el script especificado.

En PowerShell, scriptblock se asigna a System.Management.Automation.ScriptBlock. Invoke devuelve una colección de PSObject.

4.3.8 El tipo matemático

El tipo math proporciona acceso a algunas constantes y métodos útiles en cálculos matemáticos. Tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
E Propiedad estática (solo lectura) doble Base logarítmica natural
PI Propiedad estática (solo lectura) doble Relación de la circunferencia de un círculo a su diámetro
Abs Método estático numeric/numeric Valor absoluto (el tipo de valor devuelto es el mismo que el tipo del argumento pasado)
Acos Método estático double/double Ángulo cuyo coseno es el número especificado
Asin Método estático double/double Ángulo cuyo seno es el número especificado
Atan Método estático double/double Ángulo cuya tangente es el número especificado
Atan2 Método estático double/double y, double x Ángulo cuya tangente es el cociente de dos números especificados x y y
Ceiling Método estático

decimal/decimal

double/double

Número entero más pequeño mayor o igual que el número especificado
Cos Método estático double/double Coseno del ángulo especificado
Cosh Método estático double/double Coseno hiperbólico del ángulo especificado
Exp Método estático double/double e elevado a la potencia especificada
Piso Método estático

decimal/decimal

double/double

Entero más grande que sea menor o igual al número especificado
Registro Método estático

double/double number

double/double number, double base

Logaritmo de número mediante base e o base base
Log10 Método estático double/double Logaritmo base 10 de un número especificado
Máx. Método estático numeric/numeric Mayor de dos números especificados (el tipo de valor devuelto es el mismo que el tipo de los argumentos pasados)
Mín. Método estático numeric/numeric, numeric Menor de dos números especificados (el tipo de valor devuelto es el mismo que el tipo de los argumentos pasados)
Pow Método estático double/double x, double y Número especificado x elevado a la potencia especificada y
Seno Método estático double/double Seno del ángulo especificado
Sinh Método estático double/double Seno hiperbólico del ángulo especificado
Sqrt Método estático double/double Raíz cuadrada de un número especificado
Tan Método estático double/double Tangente del ángulo especificado
Tanh Método estático double/double Tangente hiperbólica del ángulo especificado

En PowerShell, Math se asigna a System.Math.

4.3.9 El tipo ordered

El tipo ordered es un pseudotipo que solo se usa para las conversiones.

4.3.10 El tipo pscustomobject

El tipo pscustomobject es un pseudotipo que solo se usa para las conversiones.

4.4 Tipos genéricos

Varios lenguajes de programación y entornos proporcionan tipos que se pueden especializar. Muchos de estos tipos se conocen como tipos de contenedor, ya que las instancias de ellos pueden contener objetos de algún otro tipo. Considere un tipo denominado Stack que puede representar una pila de valores, que se puede insertar y extraer. Normalmente, el usuario de una pila quiere almacenar solo un tipo de objeto en esa pila. Sin embargo, si el lenguaje o el entorno no admiten la especialización de tipos, se deben implementar varias variantes distintas del tipo Stack aunque todas realicen la misma tarea, solo con distintos elementos de tipo.

La especialización de tipos permite implementar un tipo genérico de forma que se pueda restringir a la administración de algún subconjunto de tipos cuando se usa. Por ejemplo

  • Un tipo de pila genérico especializado para contener cadenas puede escribirse como Stack[string].
  • Un tipo de diccionario genérico especializado para contener claves int con valores de cadena asociados se puede escribir como Dictionary[int,string].
  • Una pila de pila de cadenas se podría escribir como Stack[Stack[string]].

Aunque PowerShell no define ningún tipo genérico integrado, puede usar estos tipos si los proporciona el entorno host. Consulte la sintaxis de §7.1.10.

El nombre completo del tipo Stack[string] sugerido anteriormente es System.Collections.Generic.Stack[string]. El nombre completo del tipo Dictionary[int,string] sugerido anteriormente es System.Collections.Generic.Dictionary[int,string].

4.5 Tipos anónimos

En algunas circunstancias, una implementación de PowerShell crea objetos de algún tipo y esos objetos tienen miembros accesibles para el script. Sin embargo, no es necesario especificar el nombre real de esos tipos, siempre y cuando los miembros accesibles se especifiquen lo suficiente para que se puedan usar. Es decir, los scripts pueden guardar objetos de esos tipos y acceder a sus miembros sin conocer realmente los nombres de esos tipos. Las siguientes subsecciones especifican estos tipos.

4.5.1 Tipo de descripción del proveedor

Este tipo encapsula el estado de un proveedor. Tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Unidades Propiedad de instancia (solo lectura) Implementación definida (§4.5.2) Colección de objetos de descripción de unidad
Nombre Propiedad de instancia (solo lectura) string Nombre del proveedor

En PowerShell, este tipo es System.Management.Automation.ProviderInfo.

4.5.2 Tipo de descripción de unidad

Este tipo encapsula el estado de una unidad. Tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
UbicaciónActual Propiedad de instancia (lectura y escritura) string La ubicación de trabajo actual (§3.1.4) de la unidad
Descripción Propiedad de instancia (lectura y escritura) string Descripción de la unidad
Nombre Propiedad de instancia (solo lectura) string Nombre de la unidad
Raíz Propiedad de instancia (solo lectura) string Nombre de la unidad

En PowerShell, este tipo es System.Management.Automation.PSDriveInfo.

4.5.3 Tipo de descripción de variable

Este tipo encapsula el estado de una variable. Tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Atributos Propiedad de instancia (solo lectura) Implementación definida Colección de atributos
Descripción Propiedad de instancia (lectura y escritura) string Descripción asignada a la variable mediante los cmdlets New-Variable o Set-Variable.
Módulo Propiedad de instancia (solo lectura) Implementación definida (§4.5.12) Módulo desde el que se exportó esta variable
Nombre del Módulo Propiedad de instancia (solo lectura) string Módulo en el que se definió esta variable
Nombre Propiedad de instancia (solo lectura) string Nombre asignado a la variable cuando se creó en el lenguaje de PowerShell o a través de los cmdlets New-Variable y Set-Variable.
Opciones Propiedad de instancia (lectura y escritura) string Las opciones asignadas a la variable a través de los cmdlets New-Variable y Set-Variable.
Valor Propiedad de instancia (lectura y escritura) objeto Valor asignado a la variable cuando se asignó en el lenguaje de PowerShell o a través de los cmdlets New-Variable y Set-Variable.

En PowerShell, este tipo es System.Management.Automation.PSVariable.

Windows PowerShell: el tipo de la colección de atributos es System.Management.Automation.PSVariableAttributeCollection.

4.5.4 Tipo de descripción del alias

Este tipo encapsula el estado de un alias. Tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
TipoDeComando Propiedad de instancia (solo lectura) Implementación definida Debe coincidir con "Alias"
Definición Propiedad de instancia (solo lectura) string Comando o alias al que se le asignó el alias mediante los cmdlets New-Alias o Set-Alias.
Descripción Propiedad de instancia (lectura y escritura) string Descripción asignada al alias a través de los cmdlets New-Alias o Set-Alias.
Módulo Propiedad de instancia (solo lectura) Implementación definida (§4.5.12) Módulo desde el que se exportó este alias
Nombre del Módulo Propiedad de instancia (solo lectura) string Módulo en el que se definió este alias
Nombre Propiedad de instancia (solo lectura) string Nombre asignado al alias cuando se creó a través de los cmdlets New-Alias o Set-Alias.
Opciones Propiedad de instancia (lectura y escritura) string Las opciones asignadas al alias a través de los cmdlets New-Alias New-Alias o Set-Alias.
TipoDeSalida Propiedad de instancia (solo lectura) Colección definida por la implementación Especifica los tipos de los valores que genera el comando al que hace referencia el alias.
Parámetros Propiedad de instancia (solo lectura) Colección definida por la implementación Parámetros del comando.
Conjuntos de Parámetros Propiedad de instancia (solo lectura) Colección definida por la implementación Información sobre los conjuntos de parámetros asociados al comando .
ReferencedCommand Propiedad de instancia (solo lectura) Implementación definida Información sobre el comando al que hace referencia inmediatamente este alias.
ResolvedCommand Propiedad de instancia (solo lectura) Implementación definida Información sobre el comando para el que finalmente se resuelve el alias

En PowerShell, este tipo es System.Management.Automation.AliasInfo.

4.5.5 Tipo de descripción de ubicación de trabajo

Este tipo encapsula el estado de una ubicación de trabajo. Tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Conducir Propiedad de instancia (solo lectura) Implementación definida (§4.5.2) Objeto de descripción de unidad
Camino Propiedad de instancia (solo lectura) string Ubicación de trabajo
Proveedor Propiedad de instancia (solo lectura) Implementación definida (§4.5.1) El proveedor
ProviderPath Propiedad de instancia (solo lectura) string Ruta de acceso actual del proveedor

Una pila de ubicaciones de trabajo es una colección de objetos de ubicación de trabajo, tal como se describió anteriormente.

En PowerShell, una ubicación de trabajo actual se representa mediante un objeto de tipo System.Management.Automation.PathInfo. Una pila de ubicaciones de trabajo se representa mediante un objeto de tipo System.Management.Automation.PathInfoStack, que es una colección de objetos PathInfo.

4.5.6 Tipo de descripción de variable de entorno

Este tipo encapsula el estado de una variable de entorno. Tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Nombre Propiedad de instancia (lectura y escritura) string Nombre de la variable de entorno
Valor Propiedad de instancia (lectura y escritura) string Valor de la variable de entorno

En PowerShell, este tipo es System.Collections.DictionaryEntry. El nombre de la variable es la clave de diccionario. El valor de la variable de entorno es el valor del diccionario. Name es una AliasProperty que equivale a Key.

4.5.7 Tipo de descripción de la aplicación

Este tipo encapsula el estado de una aplicación. Tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
TipoDeComando Propiedad de instancia (solo lectura) Implementación definida Debe coincidir con "Application"
Definición Propiedad de instancia (solo lectura) string Descripción de la aplicación.
Extensión Propiedad de instancia (lectura y escritura) string Extensión del archivo de aplicación.
Módulo Propiedad de instancia (solo lectura) Implementación definida (§4.5.12) Módulo que define este comando.
Nombre del Módulo Propiedad de instancia (solo lectura) string Nombre del módulo que define el comando.
Nombre Propiedad de instancia (solo lectura) string Nombre del comando.
TipoDeSalida Propiedad de instancia (solo lectura) Colección definida por la implementación Especifica los tipos de los valores de salida por el comando .
Parámetros Propiedad de instancia (solo lectura) Colección definida por la implementación Parámetros del comando.
Conjuntos de Parámetros Propiedad de instancia (solo lectura) Colección definida por la implementación Información sobre los conjuntos de parámetros asociados al comando .
Camino Propiedad de instancia (solo lectura) string Obtiene la ruta de acceso del archivo de aplicación.

En PowerShell, este tipo es System.Management.Automation.ApplicationInfo.

4.5.8 Tipo de descripción del cmdlet

Este tipo encapsula el estado de un cmdlet. Tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
TipoDeComando Propiedad de instancia (solo lectura) Implementación definida Debe coincidir con "Cmdlet"
DefaultParameterSet Propiedad de instancia (solo lectura) Implementación definida Conjunto de parámetros predeterminado que se usa si PowerShell no puede determinar qué parámetro se va a usar en función de los argumentos proporcionados.
Definición Propiedad de instancia (solo lectura) string Descripción del cmdlet.
HelpFile Propiedad de instancia (lectura y escritura) string Ruta de acceso al archivo de ayuda del cmdlet.
TipoImplementador Propiedad de instancia (lectura y escritura) Implementación definida El tipo que implementa el cmdlet.
Módulo Propiedad de instancia (solo lectura) Implementación definida (§4.5.12) Módulo que define este cmdlet.
Nombre del Módulo Propiedad de instancia (solo lectura) string Nombre del módulo que define el cmdlet.
Nombre Propiedad de instancia (solo lectura) string Nombre del cmdlet.
Nombre Propiedad de instancia (solo lectura) string Nombre de sustantivo del cmdlet
TipoDeSalida Propiedad de instancia (solo lectura) Colección definida por la implementación Especifica los tipos de los valores que genera el cmdlet .
Parámetros Propiedad de instancia (solo lectura) Colección definida por la implementación Parámetros del cmdlet.
Conjuntos de Parámetros Propiedad de instancia (solo lectura) Colección definida por la implementación Información sobre los conjuntos de parámetros asociados al cmdlet .
Verbo Propiedad de instancia (solo lectura) string Nombre de verbo del cmdlet
PSSnapIn Propiedad de instancia (solo lectura) Implementación definida Windows PowerShell: información sobre el complemento de Windows PowerShell que se usa para registrar el cmdlet.

En PowerShell, este tipo es System.Management.Automation.CmdletInfo.

4.5.9 Tipo de descripción de script externo

Este tipo encapsula el estado de un script externo (uno que es ejecutable directamente mediante PowerShell, pero no está integrado). Tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
TipoDeComando Propiedad de instancia (solo lectura) Implementación definida Debe coincidir con "ExternalScript"
Definición Propiedad de instancia (solo lectura) string Definición del script.
Módulo Propiedad de instancia (solo lectura) Implementación definida (§4.5.12) Módulo que define este script.
Nombre del Módulo Propiedad de instancia (solo lectura) string Nombre del módulo que define el script.
Nombre Propiedad de instancia (solo lectura) string Nombre del script.
OriginalEncoding Propiedad de instancia (solo lectura) Implementación definida Codificación original utilizada para convertir los caracteres del script en bytes.
TipoDeSalida Propiedad de instancia (solo lectura) Colección definida por la implementación Especifica los tipos de los valores que genera el script.
Parámetros Propiedad de instancia (solo lectura) Colección definida por la implementación Parámetros del script.
Conjuntos de Parámetros Propiedad de instancia (solo lectura) Colección definida por la implementación Información sobre los conjuntos de parámetros asociados al script.
Camino Propiedad de instancia (solo lectura) string Ruta de acceso al archivo de script.
ScriptBlock Propiedad de instancia (solo lectura) scriptblock Script externo
ScriptContents Propiedad de instancia (solo lectura) string Contenido original del script.

En PowerShell, este tipo es System.Management.Automation.ExternalScriptInfo.

4.5.10 Tipo de descripción de función

Este tipo encapsula el estado de una función. Tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
CmdletBinding Propiedad de instancia (solo lectura) bool Indica si la función usa el mismo enlace de parámetros que usan los cmdlets compilados (consulte §12.3.5).
TipoDeComando Propiedad de instancia (solo lectura) Implementación definida Se puede comparar en términos de igualdad con "Function" o "Filter" para ver cuál de estos representa este objeto
DefaultParameterSet Propiedad de instancia (solo lectura) string Especifica el conjunto de parámetros que se va a usar si no se puede determinar a partir de los argumentos (vea §12.3.5).
Definición Propiedad de instancia (solo lectura) string Una versión de cadena de ScriptBlock
Descripción Propiedad de instancia (lectura y escritura) string Descripción de la función.
Módulo Propiedad de instancia (solo lectura) Implementación definida (§4.5.12) Módulo desde el que se exportó esta función
Nombre del Módulo Propiedad de instancia (solo lectura) string Módulo en el que se definió esta función
Nombre Propiedad de instancia (solo lectura) string Nombre de la función
Opciones Propiedad de instancia (lectura y escritura) Implementación definida Las opciones de ámbito de la función (§3.5.4).
TipoDeSalida Propiedad de instancia (solo lectura) Colección definida por la implementación Especifica los tipos de los valores de salida, en orden (vea §12.3.6).
Parámetros Propiedad de instancia (solo lectura) Colección definida por la implementación Especifica los nombres de parámetro, en orden. Si la función actúa como un cmdlet (consulte CmdletBinding anterior), los parámetros comunes se incluyen al final de la colección.
Conjuntos de Parámetros Propiedad de instancia (solo lectura) Colección definida por la implementación Información sobre los conjuntos de parámetros asociados al comando . Para cada parámetro, el resultado muestra el nombre y el tipo del parámetro e indica si el parámetro es obligatorio, por posición o un parámetro conmutador. Si la función actúa como un cmdlet (consulte CmdletBinding anterior), los parámetros comunes se incluyen al final de la colección.
ScriptBlock Propiedad de instancia (solo lectura) scriptblock (§4.3.6) Cuerpo de la función

En PowerShell, este tipo es System.Management.Automation.FunctionInfo.

  • CommandType tiene el tipo System.Management.Automation.CommandTypes.
  • Options tiene el tipo System.Management.Automation.ScopedItemOptions.
  • OutputType tiene el tipo System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.PSTypeName,System.Management.Automation]].
  • Parameters tiene el tipo System.Collections.Generic.Dictionary``2[[System.String,mscorlib],[System.Management.Automation.ParameterMetadata,System.Management.Automation]].
  • ParameterSets tiene el tipo System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.CommandParameterSetInfo,System.Management.Automation]].
  • La visibilidad tiene el tipo System.Management.Automation.SessionStateEntryVisibility.
  • PowerShell también tiene una propiedad denominada Visibility.

4.5.11 Tipo de descripción del filtro

Este tipo encapsula el estado de un filtro. Tiene el mismo conjunto de miembros accesibles que el tipo de descripción de la función (§4.5.10).

En PowerShell, este tipo es System.Management.Automation.FilterInfo. Tiene el mismo conjunto de propiedades que System.Management.Automation.FunctionInfo (§4.5.11).

4.5.12 Tipo de descripción del módulo

Este tipo encapsula el estado de un módulo. Tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Descripción Propiedad de instancia (lectura y escritura) string Descripción del módulo (establecido por el manifiesto)
TipoDeMódulo Propiedad de instancia (solo lectura) Implementación definida Tipo del módulo (Manifiesto, Script o Binario)
Nombre Propiedad de instancia (solo lectura) string Nombre del módulo
Camino Propiedad de instancia (solo lectura) string Ruta de acceso del módulo

En PowerShell, este tipo es System.Management.Automation.PSModuleInfo. El tipo de ModuleType es System.Management.Automation.ModuleType.

4.5.13 Tipo de descripción de objeto personalizado

Este tipo encapsula el estado de un objeto personalizado. No tiene miembros accesibles.

En PowerShell, este tipo es System.Management.Automation.PSCustomObject. Los cmdlets Import-Module y New-Object pueden generar un objeto de este tipo.

4.5.14 Tipo de descripción del comando

La variable automática $PSCmdlet es un objeto que representa el cmdlet o la función que se está ejecutando. El tipo de este objeto es la implementación definida; tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
NombreDelConjuntoDeParámetros Propiedad de instancia (solo lectura) string Nombre del conjunto de parámetros actual (vea ParameterSetName)
ShouldContinue Método de instancia

Sobrecargado

/bool

Solicita confirmación de una operación del usuario.
ShouldProcess Método de instancia

Sobrecargado

/bool

Solicita confirmación del usuario antes de realizar una operación.

En PowerShell, este tipo es System.Management.Automation.PSScriptCmdlet.

4.5.15 Tipo de descripción del registro de error

La variable automática $Error contiene una colección de registros de error que representan errores recientes (§3.12). Aunque el tipo de esta colección no está especificado, admite la suscripción para obtener acceso a registros de errores individuales.

En PowerShell, el tipo de colección es System.Collections.ArrayList. El tipo de registro de error individual en la colección es System.Management.Automation.ErrorRecord. Este tipo tiene las siguientes propiedades públicas:

  • CategoryInfo: obtiene información sobre la categoría del error.
  • ErrorDetails: obtiene y establece información de error más detallada, como un mensaje de error de reemplazo.
  • Excepción: obtiene la excepción asociada a este registro de error.
  • FullyQualifiedErrorId: obtiene el identificador de error completo para este registro de error.
  • InvocationInfo: obtiene información sobre el comando que se invocó cuando se produjo el error.
  • PipelineIterationInfo: obtiene el estado de la canalización cuando se creó este registro de error.
  • TargetObject: obtiene el objeto que se estaba procesando cuando se produjo el error.

4.5.16 Tipo de descripción del enumerador

Varias variables son enumeradores para colecciones (§4). La variable automática $foreach es el enumerador creado para cualquier instrucción foreach. La variable automática $input es el enumerado para una colección que se entrega a una función desde la canalización. La variable automática $switch es el enumerador creado para cualquier instrucción switch.

El tipo de un enumerador es definido por la implementación; tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Current Propiedad de instancia (solo lectura) objeto Obtiene el elemento actual de la colección. Si el enumerador no está situado actualmente en un elemento de la colección, el comportamiento está definido por la implementación.
MoveNext Método de instancia None/bool Desplaza el enumerador al siguiente elemento de la colección. Devuelve $true si el enumerador avanzó correctamente al elemento siguiente; devuelve $false si el enumerador alcanzó el final de la colección.

En PowerShell, estos miembros se definen en la interfaz System.IEnumerator, que se implementa mediante los tipos identificados a continuación. Si el enumerador no está situado actualmente en un elemento de la colección, se genera una excepción de tipo InvalidOperationException. Para $foreach, este tipo es System.Array+SZArrayEnumerator. Para $input, este tipo es System.Collections.ArrayList+ArrayListEnumeratorSimple. Para $switch, este tipo es System.Array+SZArrayEnumerator.

4.5.17 Tipo de descripción del directorio

El cmdlet New-Item puede crear elementos de varios tipos, incluidos los directorios FileSystem. El tipo de un objeto de descripción de directorio está definido por la implementación; tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Atributos Propiedad de instancia (lectura y escritura) Implementación definida (§4.2.6.3) Obtiene o establece uno o varios de los atributos del objeto de directorio.
HoraDeCreación Propiedad de instancia (lectura y escritura) Implementación definida (§4.5.19) Obtiene y establece la hora de creación del objeto de directorio.
Extensión Propiedad de instancia (solo lectura) string Obtiene la parte de extensión del nombre del directorio.
Nombre completo Propiedad de instancia (solo lectura) string Obtiene la ruta de acceso completa del directorio.
LastWriteTime Propiedad de instancia (lectura y escritura) Implementación definida (§4.5.19) Obtiene y establece la hora en la que se escribió por última vez el directorio.
Nombre Propiedad de instancia (solo lectura) string Obtiene el nombre del directorio.

En PowerShell, este tipo es System.IO.DirectoryInfo. El tipo de la propiedad Attributes es System.IO.FileAttributes.

4.5.18 Tipo de descripción de archivo

El cmdlet New-Item puede crear elementos de varios tipos, incluidos los archivos FileSystem. El tipo de un objeto de descripción de archivo está definido por la implementación; tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Atributos Propiedad de instancia (lectura y escritura) Implementación definida (§4.2.6.3) Obtiene o establece uno o varios de los atributos del objeto de archivo.
BaseName Propiedad de instancia (solo lectura) string Obtiene el nombre del archivo que excluye la extensión.
HoraDeCreación Propiedad de instancia (lectura y escritura) Implementación definida (§4.5.19) Obtiene y establece la hora de creación del objeto de archivo.
Extensión Propiedad de instancia (solo lectura) string Obtiene la parte de extensión del nombre de archivo.
Nombre completo Propiedad de instancia (solo lectura) string Obtiene la ruta de acceso completa del archivo.
LastWriteTime Propiedad de instancia (lectura y escritura) Implementación definida (§4.5.19) Obtiene y establece la hora en la que se escribió por última vez el archivo.
Largura Propiedad de instancia (solo lectura) long Obtiene el tamaño del archivo, en bytes.
Nombre Propiedad de instancia (solo lectura) string Obtiene el nombre del archivo.
Información de la versión Propiedad de instancia (solo lectura) Implementación definida Windows PowerShell: esta ScriptProperty devuelve un elemento System.Diagnostics.FileVersionInfo para el archivo.

En PowerShell, este tipo es System.IO.FileInfo.

4.5.19 Tipo de descripción Date-Time

El tipo de un objeto de descripción de fecha y hora está definido por la implementación; tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Día Propiedad de instancia (solo lectura) int Obtiene el componente correspondiente al día del mes representado por esta instancia
Hora Propiedad de instancia (solo lectura) int Obtiene el componente de hora de la fecha representada por esta instancia.
Minuto Propiedad de instancia (solo lectura) int Obtiene el componente correspondiente a los minutos de la fecha representada por esta instancia.
Mes Propiedad de instancia (solo lectura) int Obtiene el componente mes de la fecha representada por esta instancia.
Segundo Propiedad de instancia (solo lectura) int Obtiene el componente de segundos de la fecha representada por esta instancia.
Año Propiedad de instancia (solo lectura) int Obtiene el componente de año de la fecha representada por esta instancia.

Un objeto de este tipo puede ser creado por el cmdlet Get-Date.

En PowerShell, este tipo es System.DateTime.

4.5.20 Tipo de descripción Group-Info

El tipo de un objeto de descripción group-info está definido por la implementación y tiene estos miembros accesibles:

Miembro Tipo de miembro Tipo Propósito
Count Propiedad de instancia (solo lectura) int Obtiene la cantidad de elementos del grupo
Grupo Propiedad de instancia (solo lectura) Colección definida por la implementación Obtiene los elementos del grupo
Nombre Propiedad de instancia (solo lectura) string Obtiene el nombre del grupo.
Valores Propiedad de instancia (solo lectura) Colección definida por la implementación Obtiene los valores de los elementos del grupo.

Un objeto de este tipo se puede crear mediante el cmdlet Group-Object.

En PowerShell, este tipo es Microsoft.PowerShell.Commands.GroupInfo.

4.5.21 Tipo de descripción Generic-Measure-Info

El tipo de un objeto de descripción generic-measure-info está definido por la implementación y tiene estos miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Promedio Propiedad de instancia (solo lectura) doble Obtiene el promedio de los valores de las propiedades que se miden.
Count Propiedad de instancia (solo lectura) int Obtiene el número de objetos con las propiedades especificadas.
Máximo Propiedad de instancia (solo lectura) doble Obtiene el valor máximo de las propiedades especificadas.
Mínimo Propiedad de instancia (solo lectura) doble Obtiene el valor mínimo de las propiedades especificadas.
Propiedad Propiedad de instancia (solo lectura) string Obtiene la propiedad que se va a medir
Suma Propiedad de instancia (solo lectura) doble Obtiene la suma de los valores de las propiedades especificadas.

Un objeto de este tipo se puede crear mediante el cmdlet Measure-Object.

En PowerShell, este tipo es Microsoft.PowerShell.Commands.GenericMeasureInfo.

4.5.22 Tipo de descripción Text-Measure-Info

El tipo de un objeto de descripción text-info está definido por la implementación y tiene estos miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Caracteres Propiedad de instancia (solo lectura) int Obtiene el número de caracteres del objeto de destino.
Líneas Propiedad de instancia (solo lectura) int Obtiene el número de líneas del objeto de destino.
Propiedad Propiedad de instancia (solo lectura) string Obtiene la propiedad que se va a medir
Palabras Propiedad de instancia (solo lectura) int Obtiene el número de palabras del objeto de destino.

Un objeto de este tipo se puede crear mediante el cmdlet Measure-Object.

En PowerShell, este tipo es Microsoft.PowerShell.Commands.TextMeasureInfo.

4.5.23 Tipo de credencial

A continuación, se puede usar un objeto de credencial en varias operaciones de seguridad. El tipo de un objeto de credencial está definido por la implementación; tiene los siguientes miembros accesibles:

Miembro Tipo de miembro Tipo Propósito
Contraseña Propiedad de instancia (solo lectura) Implementación definida Obtiene la contraseña.
Nombre de usuario Propiedad de instancia (solo lectura) string Obtiene el nombre de usuario.

Un objeto de este tipo se puede crear mediante el cmdlet Get-Credential.

En PowerShell, este tipo es System.Management.Automation.PSCredential.

4.5.24 Tipo de designador de método

El tipo de un designador de métodos está definido por la implementación; tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Invocar Método de instancia número y tipo de objeto/variable Toma un número variable de argumentos y llama indirectamente al método al que hace referencia el designador de método primario, pasando los argumentos.

Un objeto de este tipo se puede crear mediante una expresión de invocación (§7.1.3).

En PowerShell, este tipo es System.Management.Automation.PSMethod.

4.5.25 Tipo de definición de miembro

Este tipo encapsula la definición de un miembro. Tiene los siguientes miembros accesibles:

Miembro Variante de miembro Tipo Propósito
Definición Propiedad de instancia (solo lectura) string Obtiene la definición del miembro
TipoDeMiembro Propiedad de instancia (solo lectura) Implementación definida Obtiene el tipo de PowerShell del miembro.
Nombre Propiedad de instancia (solo lectura) string Obtiene el nombre del miembro.
TypeName Propiedad de instancia (solo lectura) string Obtiene el nombre de tipo del miembro

En PowerShell, este tipo es Microsoft.PowerShell.Commands.MemberDefinition.

4.6 Extensión de tipo y adaptación

Una implementación de PowerShell incluye una familia de tipos principales (que se documentan en este capítulo) que cada uno contiene su propio conjunto de miembros base de . Esos miembros pueden ser métodos o propiedades, y pueden ser miembros estáticos o de instancia. Por ejemplo, los miembros base del tipo string (§4.3.1) corresponden a la propiedad de instancia Length y los métodos de instancia ToLower y ToUpper.

Cuando se crea un objeto, contiene todas las propiedades de instancia del tipo de ese objeto y se puede llamar a los métodos de instancia de ese tipo en ese objeto. Un objeto se puede personalizar mediante la adición de miembros de instancia en tiempo de ejecución. El resultado se denomina objeto personalizado . Los miembros agregados a una instancia solo existen durante la vida de esa instancia; Otras instancias del mismo tipo de núcleo no se ven afectadas.

El conjunto de miembros base de un tipo se puede aumentar mediante la adición de los siguientes tipos de miembros:

  • miembros adaptados, a través del sistema de tipo extendido (ETS), cuyos detalles en su mayoría no están especificados.
  • miembros extendidos, a través del Add-Member.

En PowerShell, los miembros extendidos también se pueden agregar a través de archivos types.ps1xml. En conjunto, los miembros adaptados y extendidos se denominan miembrossintéticos.

ETS agrega los siguientes miembros a todos los objetos de PowerShell: psbase, psadapted, psextendedy pstypenames. Consulte los parámetros Force y View en el cmdlet Get-Member para obtener más información sobre estos miembros.

Un miembro de instancia puede ocultar un miembro extendido o adaptado del mismo nombre y un miembro extendido puede ocultar un miembro adaptado. En tales casos, los conjuntos de miembros psadapted y psextended se pueden usar para acceder a esos miembros ocultos.

Si un types.ps1xml especifica un miembro denominado Supports, obj.psextended proporciona acceso solo a ese miembro y no a un miembro agregado a través de Add-Member.

Hay tres maneras de crear un objeto personalizado que tenga un nuevo miembro M:

  1. Este enfoque se puede usar para agregar uno o varios miembros NoteProperty.

    $x = New-Object PSObject -Property @{M = 123}
    
  2. Este enfoque se puede usar para agregar miembros NoteProperty o ScriptMethod.

    $x = New-Module -AsCustomObject {$M = 123 ; Export-ModuleMember --Variable M}
    
  3. Este enfoque se puede usar para agregar cualquier tipo de miembro.

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

PSObject es el tipo base de todos los tipos de PowerShell.