4. Tipos

No PowerShell, cada valor tem um tipo, e os tipos enquadram-se numa das duas categorias principais: tipos de valor e tipos de referência. Considere o tipo int, que é típico dos tipos de valor. Um valor de tipo int é completamente autossuficiente; todos os bits necessários para representar esse valor são armazenados nesse valor, e cada padrão bit nesse valor representa um valor válido para o seu tipo. Agora, considere o tipo int[]de matriz, que é típico dos tipos de referência. Um chamado valor de um tipo de matriz pode conter uma referência a um objeto que realmente contém os elementos de matriz, ou a referência nula cujo valor é $null. A distinção importante entre as duas categorias de tipo é melhor demonstrada pelas diferenças na sua semântica durante a atribuição. Por exemplo,

$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, a atribuição de um valor de tipo de referência envolve uma cópia rasa; ou seja, uma cópia da referência ao objeto em vez do seu valor real. Em contraste, uma cópia profunda requer fazer uma cópia do objeto também.

Um tipo numérico é aquele que permite a representação de valores inteiros ou fracionados, e que suporta operações aritméticas nesses valores. O conjunto de tipos numéricos inclui os tipos inteiros (§4.2.3) e número real (§4.2.4), mas não inclui bool (§4.2.1) ou char (§4.2.2). Uma implementação pode fornecer outros tipos numéricos (tais como byte assinado, inteiro não assinado e inteiros de outros tamanhos).

Uma coleção é um grupo de um ou mais itens relacionados, que não precisam ter o mesmo tipo. Exemplos de tipos de coleção são matrizes, pilhas, filas, listas e mesas de hash. Um programa pode enumerar (ou iterar) sobre os elementos de uma coleção, obtendo acesso a cada elemento um de cada vez. As formas comuns de o fazer são com a declaração de foreach (§8.4.4) e o cmdlet ForEach-Object . O tipo de objeto que representa um enumerador é descrito em §4.5.16.

Neste capítulo, há tabelas que listam os membros acessíveis para um determinado tipo. Para métodos, o Tipo é escrito com o seguinte formulário: returnTypeargumentTypeList/. Se a lista de tipos de argumento for demasiado longa para caber nessa coluna, é mostrada na coluna Purpose .

Outros tipos inteiros são SByte, Int16``UInt16, e UInt32``UInt64, todos no sistema de espaço de nome.

Muitas classes de recolha são definidas como parte do System.Collections ou System.Collections.Generic namespaces. A maioria das classes de recolha implementa as interfacesICollection, IComparer``IEnumerablee IList``IDictionary``IDictionaryEnumerator os seus equivalentes genéricos.

4.1 Tipos especiais

4.1.1 O tipo de vazio

Este tipo não pode ser instantâneo. Fornece um meio para descartar explicitamente um valor utilizando o operador do elenco (§7.2.9).

4.1.2 O tipo nulo

O tipo nulo tem um caso, a variável automática $null (§2.3.2.2), também conhecido como o valor nulo. Este valor fornece um meio para expressar "nada" em contextos de referência. As características deste tipo não são especificadas.

4.1.3 O tipo de objeto

Todos os tipos em PowerShell exceto o tipo nulo (§4.1.2) são derivados direta ou indiretamente do objeto tipo, pelo que o objeto é o tipo de base final de todos os tipos não nulos. Uma variável restrita (§5.3) para escrever objeto não é realmente limitada em tudo, pois pode conter um valor de qualquer tipo.

4.2 Tipos de valor

4.2.1 Boolean

O tipo Boolean é bool. Existem apenas dois valores deste tipo, Falso e Verdadeiro, representados pelas variáveis automáticas $false e $true, respectivamente (§2.3.2.2).

Em PowerShell, bool mapas para System.Boolean.

4.2.2 Personagem

Um valor de caracteres tem o tipo de char, que é capaz de armazenar qualquer ponto de código Unicode codificado por UTF-16.

O tipo de carvão tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
MaxValue Propriedade estática (apenas para leitura) char O maior valor possível de tipo carvão
MinValue Propriedade estática (apenas para leitura) char O menor valor possível de tipo carvão
IsControl Método estático bool/char Testa se o personagem é um personagem de controlo
IsDigit Método estático bool/char Testa se o personagem é um dígito decimal
IsLetter Método estático bool/char Testa se o personagem é uma letra alfabética
IsLetterOrDigit Método estático bool/char Testa se o personagem é um dígito decimal ou uma letra alfabética
IsLower Método estático bool/char Testa se o personagem é uma letra alfabética minúscula
IsPunctuation Método estático bool/char Testa se o personagem é uma marca de pontuação
Isupper Método estático bool/char Testa se o personagem é uma letra alfabética maiúscula
É O Espaço Branco Método estático bool/char Testa se o personagem é um personagem do espaço branco.
ToLower Método estático char/string Converte o personagem em minúsculas
Toupper Método estático char/string Converte o personagem em maiúscula

Windows PowerShell: mapas de char para System.Char.

4.2.3 Inteiro

Existem dois tipos inteiros assinados, ambos de utilização de representação de dois complementos para valores negativos:

  • Tipo int, que usa 32 bits dando-lhe uma gama de -2147483648 a +2147483647, inclusive.
  • Tipo long, que usa 64 bits dando-lhe uma gama de -9223372036854775808 a +9223372036854775807, inclusive.

O Type Int tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
MaxValue Propriedade estática (apenas para leitura) int O maior valor possível de tipo int
MinValue Propriedade estática (apenas para leitura) int O menor valor possível de tipo int

O Tipo Longo tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
MaxValue Propriedade estática (apenas para leitura) long O maior valor possível do tipo longo
MinValue Propriedade estática (apenas para leitura) long O menor valor possível do tipo longo

Há um tipo inteiro não assinado:

  • Tipo byte, que usa 8 bits dando-lhe uma gama de 0 a 255, inclusive.

O tipo byte tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
MaxValue Propriedade estática (apenas para leitura) byte O maior valor possível de byte tipo
MinValue Propriedade estática (apenas para leitura) byte O menor valor possível de tipo byte

Em PowerShell, bytee intmapear long para System.Byte, System.Int32e System.Int64, respectivamente.

4.2.4 Número real

4.2.4.1 boia e duplo

Existem dois tipos reais (ou ponto flutuante):

  • Tipo float utiliza a representação de precisão única do IEEE de 32 bits.
  • Tipo double utiliza a representação de dupla precisão IEEE de 64 bits.

Um terceiro nome do tipo, singleé um sinónimo para o tipo float; float é usado ao longo desta especificação.

Embora o tamanho e representação dos tipos float e double sejam definidos por esta especificação, uma implementação pode usar uma precisão estendida para resultados intermédios.

O tipo de boia tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
MaxValue Propriedade estática (apenas para leitura) float O maior valor possível de flutuação tipo
MinValue Propriedade estática (apenas para leitura) float O menor valor possível de flutuar tipo
NaN Propriedade estática (apenas para leitura) float O valor constante Não-um-Número
Infinidade negativa Propriedade estática (apenas para leitura) float O infinito negativo de valor constante
Evolução positiva Propriedade estática (apenas para leitura) float O infinito positivo de valor constante

O tipo duplo tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
MaxValue Propriedade estática (apenas para leitura) double O maior valor possível de tipo duplo
MinValue Propriedade estática (apenas para leitura) double O menor valor possível de tipo duplo
NaN Propriedade estática (apenas para leitura) double O valor constante Não-um-Número
Infinidade negativa Propriedade estática (apenas para leitura) double O infinito negativo de valor constante
Evolução positiva Propriedade estática (apenas para leitura) double O infinito positivo de valor constante

Em PowerShell, float e mapear double para System.Single e System.Double, respectivamente.

4.2.4.2 decimal

Tipo decimal usa uma representação de 128 bits. No mínimo, deve suportar uma escala de tal forma que 0 <= s <= pelo menos 28, e uma gama de valor -79228162514264337593543950335 79228162514264337593543950335. A representação real da decimal é definida.

O tipo decimal tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
MaxValue Propriedade estática (apenas para leitura) decimal O maior valor possível de decimal tipo
MinValue Propriedade estática (apenas para leitura) decimal O menor valor possível de tipo decimal

Nota

Os números reais decimais têm uma característica chamada escala, que representa o número de dígitos à direita do ponto decimal. Por exemplo, o valor 2.340 tem uma escala de 3 onde os zeros de fuga são significativos. Quando dois números reais decimais são adicionados ou subtraídos, a escala do resultado é maior das duas escalas. Por exemplo, 1.0 + 2.000 é 3.000, enquanto 5.0 - 2.00 é 3.00. Quando dois números reais decimais são multiplicados, a escala do resultado é a soma das duas escalas. Por exemplo, 1.0 * 2.000 é 2.0000. Quando dois números reais decimais são divididos, a escala do resultado é a escala do primeiro menos a escala do segundo. Por exemplo, 4.00000/2.000 é 2.00. No entanto, uma escala não pode ser inferior à necessária para preservar o resultado correto. Por exemplo, 3.000/2.000, 3.00/2.000, 3.0/2.000 e 3/2 são todos 1,5.

Em PowerShell, decimal mapas para System.Decimal. A representação da decimal é a seguinte:

  • Quando considerado como uma matriz de quatro int valores, contém os seguintes elementos:
    • O índice 0 (bits 0-31) contém os 32 bits de baixa ordem do coeficiente decimal.
    • O índice 1 (bits 32-63) contém os 32 bits médios do coeficiente da decimal.
    • O índice 2 (bits 64-95) contém os 32 bits de alta ordem do coeficiente da decimal.
    • O Índice 3 (bits 96-127) contém a broca e a escala do sinal, da seguinte forma:
      • bits 0--15 são zero
      • bits 16-23 contém a escala como um valor 0--28
      • bits 24-30 são zero
      • bit 31 é o sinal (0 para positivo, 1 para negativo)

4.2.5 O tipo de comutação

Este tipo é utilizado para conter o tipo de parâmetro num comando (§8.10.5). Se estiver presente um argumento com o nome do parâmetro correspondente, os ensaios de parâmetros $true; caso contrário, testa $false.

Em PowerShell, switch mapas para System.Management.Automation.SwitchParameter.

4.2.6 Tipos de enumeração

Um tipo de enumeração é aquele que define um conjunto de constantes nomeadas representando todos os valores possíveis que podem ser atribuídos a um objeto desse tipo de enumeração. Em alguns casos, o conjunto de valores é tal que apenas um valor pode ser representado de cada vez. Noutros casos, o conjunto de valores são poderes distintos de dois, e utilizando o operador de -bor (§7.8.5), os valores múltiplos podem ser codificados no mesmo objeto.

O ambiente PowerShell fornece uma série de tipos de enumeração, conforme descrito nas seguintes secções.

4.2.6.1 Action-Preference tipo

Este tipo definido para a implementação tem os seguintes membros acessíveis mutuamente exclusivos:

Membro Membro Tipo Objetivo
Continuar Constante de enumeração O tempo de execução powerShell continuará a ser processado e notificará o utilizador de que ocorreu uma ação.
Inquirir Constante de enumeração O tempo de funcionaamento do PowerShell deixará de ser processado e perguntará ao utilizador como deve proceder.
SilentlyContinue Constante de enumeração O tempo de execução powerShell continuará a ser processado sem notificar o utilizador de que ocorreu uma ação.
Parar Constante de enumeração O tempo de funcionaamento powerShell deixará de ser processado quando ocorrer uma ação.

No PowerShell, este tipo é System.Management.Automation.ActionPreference.

4.2.6.2 Confirm-Impact tipo

Este tipo definido para a implementação tem os seguintes membros acessíveis mutuamente exclusivos:

Membro Membro Tipo Objetivo
Alto Constante de enumeração A ação executada tem um alto risco de perder dados, como reformar um disco rígido.
Baixo Constante de enumeração A ação executada tem um baixo risco de perda de dados.
Médio Constante de enumeração A ação executada tem um risco médio de perder dados.
Nenhuma Constante de enumeração Não confirme quaisquer ações (suprimir todos os pedidos de confirmação).

No PowerShell, este tipo é System.Management.Automation.ConfirmImpact.

4.2.6.3 tipo File-Attributes

Este tipo definido para a implementação tem os seguintes membros acessíveis, que podem ser combinados:

Membro Membro Tipo Objetivo
Arquivo Constante de enumeração O estado do arquivo do ficheiro. As aplicações utilizam este atributo para marcar ficheiros para cópia de segurança ou remoção.
Comprimidos Constante de enumeração O ficheiro está comprimido.
Dispositivo Reservado para uso futuro.
Diretório Constante de enumeração O ficheiro é um diretório.
Encriptados Constante de enumeração O ficheiro ou diretório está encriptado. Para um ficheiro, isto significa que todos os dados do ficheiro estão encriptados. Para um diretório, isto significa que a encriptação é o padrão para ficheiros e diretórios recém-criados.
Oculto Constante de enumeração O ficheiro está escondido e, portanto, não está incluído numa listagem ordinária.
Normal Constante de enumeração O ficheiro é normal e não tem outros atributos definidos. Este atributo só é válido se for utilizado sozinho.
NãoContentIndexed Constante de enumeração O ficheiro não será indexado pelo serviço de indexação de conteúdos do sistema operativo.
Offline Constante de enumeração O ficheiro está desligado. Os dados do ficheiro não estão imediatamente disponíveis.
ReadOnly Constante de enumeração O ficheiro é só para leitura.
ReparsePoint Constante de enumeração O ficheiro contém um ponto de reparse, que é um bloco de dados definidos pelo utilizador associados a um ficheiro ou a um diretório.
EsparsoFile Constante de enumeração O ficheiro é um ficheiro escasso. Os ficheiros escassos são normalmente ficheiros grandes cujos dados são na sua maioria zeros.
Sistema Constante de enumeração O ficheiro é um ficheiro do sistema. O ficheiro faz parte do sistema operativo ou é utilizado exclusivamente pelo sistema operativo.
Temporária Constante de enumeração O ficheiro é temporário. Os sistemas de ficheiros tentam manter todos os dados na memória para um acesso mais rápido em vez de reenervar os dados para armazenamento em massa. Um ficheiro temporário deve ser eliminado pelo pedido logo que já não seja necessário.

No PowerShell, este tipo é System.IO.FileAttributes com atributo FlagsAttribute.

4.2.6.4 Tipo de opção de expressão regular

Este tipo definido para a implementação tem os seguintes membros acessíveis, que podem ser combinados:

Membro Membro Tipo Objetivo
IgnoreCase Constante de enumeração Especifica que a correspondência é insensível a caso.
Nenhuma Constante de enumeração Especifica que não há opções definidas.

Uma implementação pode fornecer outros valores.

No PowerShell, este tipo é System.Text.RegularExpressions.RegexOptions com atributo FlagsAttribute. Os seguintes valores extra são definidos: , , , , , , Multiline, , RightToLeft, . Singleline``IgnorePatternWhitespace``ExplicitCapture``ECMAScript``CultureInvariant``Compiled

4.3 Tipos de referência

4.3.1 Cordas

Um valor de corda tem uma cadeia tipo e é uma sequência imutável de caracteres zero ou mais de tipo de char cada um contendo um ponto de código Unicode codificado utf-16-16.

A cadeia tipo tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Comprimento Propriedade de exemplo int (apenas ler) Obtém o número de caracteres na corda
ToLower Método de instância string Cria uma nova cadeia que contém o equivalente minúsculo
Toupper Método de instância string Cria uma nova cadeia que contém o equivalente maiúscula

Em PowerShell, string mapas para System.String.

4.3.2 Matrizes

Todos os tipos de matrizes são derivados do tipo Array. Este tipo tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Comprimento Propriedade de instância (apenas para leitura) int Número de elementos na matriz
Posição Propriedade de instância (apenas para leitura) int Número de dimensões na matriz
Copiar Método Estático coluna void/ver Propósito

Copia uma gama de elementos de uma matriz para outra. Existem quatro versões, onde a fonte é a matriz de origem, o destino é a matriz de destino, a contagem é o número de elementos a copiar, e sourceIndex e destinationIndex são os locais de partida nas respetivas matrizes:

Cópia (fonte, destino, contagem int)
Cópia (fonte, destino, contagem longa)
Cópia (fonte, sourceIndex, destino, destinationIndex, int count)
Cópia (fonte, fonteIndex, destino, destinationIndex, contagem longa)

GetLength Método de instância (apenas para leitura) int/nenhum

Número de elementos numa determinada dimensão

GetLength ( dimensão int)

Para mais detalhes sobre as matrizes, consulte §9.

Em PowerShell, Array mapas para System.Array.

4.3.3 Hashtables

O Tipo Hashtable tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
de palavras Propriedade de exemplo int Obtém o número de pares chave/valor no Hashtable
Chaves Propriedade de exemplo Definido pela implementação Recebe uma coleção de todas as chaves
Valores Propriedade de exemplo Definido pela implementação Recebe uma coleção de todos os valores
Remover Método de instância vazio/nenhum Remove a chave/valor designado

Para mais detalhes sobre Hashtables, consulte §10.

Em PowerShell, Hashtable mapas para System.Collections.Hashtable. Hashtable os elementos são armazenados num objeto de tipo DictionaryEntry, e as coleções devolvidas por Chaves e Valores têm tipo ICollection.

4.3.4 O tipo xml

O tipo xml implementa o Modelo de Objeto de Documento W3C (DOM) Nível 1 Core e o Núcleo DOM Nível 2. O DOM é uma representação de árvore em memória (cache) de um documento XML e permite a navegação e edição deste documento. Este tipo suporta o operador subscrito [] (§7.1.4.4).

Em PowerShell, xml mapas para System.Xml.XmlDocument.

4.3.5 O tipo regex

O tipo regex fornece maquinaria para apoiar o processamento regular de expressões. É utilizado para conter o tipo de parâmetro (§5.3) cujo argumento correspondente pode conter uma expressão regular.

Em PowerShell, regex mapas para System.Text.RegularExpressions.Regex.

4.3.6 O tipo ref

Normalmente, os argumentos são passados para comandos por valor. No caso de um argumento com algum valor tipo uma cópia do valor é passada. No caso de um argumento com algum tipo de referência, é passada uma cópia da referência.

O tipo ref fornece maquinaria para permitir que os argumentos sejam passados para comandos por referência, para que os comandos possam modificar o valor do argumento. O tipo ref tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Valor Propriedade de exemplo (ler-escrever) O tipo de valor a ser referenciado. Recebe/define o valor a ser referenciado.

Considere a seguinte definição de função e chamada:

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

Considere o caso em que $number é limitador de 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

Como mostrado, tanto o argumento como o parâmetro correspondente devem ser declarados ref.

Em PowerShell, ref mapas para System.Management.Automation.PSReference.

4.3.7 O tipo de bloco de script

O tipo scriptblock representa um bloco pré-bloqueado de texto de script (§7.1.8) que pode ser usado como uma única unidade. Tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Atributos Propriedade de instância (apenas leitura) Coleção de atributos Obtém os atributos do bloco de scripts.
Ficheiro Propriedade de instância (apenas leitura) string Obtém o nome do ficheiro no qual o bloco de scripts é definido.
Módulo Propriedade de instância (apenas leitura) implementação definida ([§4.5.12][§4.5.12]) Obtém informações sobre o módulo em que o bloco de scripts é definido.
GetNewClosure Método de instância bloco de scripts
/nenhum
Recupera um bloco de scripts que está ligado a um módulo. Quaisquer variáveis locais que estejam no contexto do chamador serão copiadas para o módulo.
Invocar Método de instância Recolha de objeto/objeto[] Invoca o bloco de scripts com os argumentos especificados e devolve os resultados.
Invocar AsEsIs Método de instância objeto/objeto[] Invoca o bloco de scripts com os argumentos especificados e devolve quaisquer objetos gerados.
Criar Método estático bloco de scripts
/corda
Cria um novo objeto de scriptblock que contém o script especificado.

Em PowerShell, scriptblock mapas para System.Management.Automation.ScriptBlock. Invoke devolve uma coleção de PsObject.

4.3.8 O tipo matemático

O tipo math fornece acesso a algumas constantes e métodos úteis em cálculos matemáticos. Tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
E Propriedade estática (apenas para leitura) double Base logarítmica natural
PI Propriedade estática (apenas para leitura) double Relação da circunferência de um círculo ao seu diâmetro
Abs Método estático numérico/numérico Valor absoluto (o tipo de retorno é o mesmo que o tipo de argumento passado)
Acos Método estático duplo / duplo Ângulo cujo cosine é o número especificado
Asin Método estático duplo / duplo Ângulo cuja sena é o número especificado
Atan Método estático duplo / duplo Ângulo cuja tangente é o número especificado
Atan2 Método estático duplo / duplo y, duplo x Ângulo cuja tangente é o quociente de dois números especificados x e y
Ceiling Método estático

decimal / decimal

duplo / duplo

menor número inteiro maior ou igual ao número especificado
Cos Método estático duplo / duplo Cosine do ângulo especificado
Cosh Método estático duplo / duplo Cosina hiperbólica do ângulo especificado
Exp Método estático duplo / duplo e elevado à potência especificada
Floor Método estático

decimal / decimal

duplo / duplo

Maior número inteiro menos ou igual ao número especificado
Registo Método estático

número duplo / duplo

número duplo / duplo, base dupla

Logaritmos de número usando base e ou base
Log10 Método estático duplo / duplo Logaritmo base-10 de um número especificado
Máx Método estático numérico/numérico Maior de dois números especificados (o tipo de retorno é o mesmo que o tipo de argumentos passados)
Mín Método estático numérico/numérico, numérico Menor de dois números especificados (o tipo de devolução é o mesmo que o tipo de argumentos passados)
Pow Método estático duplo / duplo x, duplo y Um número especificado x elevado ao poder especificado y
Sin Método estático duplo / duplo Sine do ângulo especificado
Sinh Método estático duplo / duplo Sine hiperbólico do ângulo especificado
Sqrt Método estático duplo / duplo Raiz quadrada de um número especificado
Tan Método estático duplo / duplo Tangente do ângulo especificado
Tanh Método estático duplo / duplo Tangente hiperbólica do ângulo especificado

Em PowerShell, Math mapas para System.Math.

4.3.9 O tipo ordenado

Tipo ordered é um pseudo-tipo usado apenas para conversões.

4.3.10 O tipo pscustomobject

Tipo pscustomobject é um pseudo-tipo usado apenas para conversões.

4.4 Tipos genéricos

Uma série de linguagens e ambientes de programação fornecem tipos que podem ser especializados. Muitos destes tipos são referidos como tipos de contentores, uma vez que os casos são capazes de conter objetos de outro tipo. Considere um tipo chamado Stack que pode representar uma pilha de valores, que pode ser empurrado e rebentado. Normalmente, o utilizador de uma pilha quer armazenar apenas um tipo de objeto nessa pilha. No entanto, se a linguagem ou o ambiente não suportam a especialização do tipo, várias variantes distintas do tipo Stack devem ser implementadas, mesmo que todas executem a mesma tarefa, apenas com diferentes elementos do tipo.

A especialização do tipo permite implementar um tipo genérico de modo a que possa ser limitado a manusear alguns subtipos de tipos quando é utilizado. Por exemplo,

  • Um tipo de pilha genérica que é especializado para segurar cordas pode ser escrito como Stack[string].
  • Um tipo de dicionário genérico especializado para segurar teclas int com valores de cordas associados pode ser escrito como Dictionary[int,string].
  • Uma pilha de cordas pode ser escrita como Stack[Stack[string]].

Embora o PowerShell não defina quaisquer tipos genéricos incorporados, pode utilizar tais tipos se forem fornecidos pelo ambiente de hospedeiro. Veja a sintaxe em §7.1.10.

O nome completo para o tipo Stack[string] acima sugerido é System.Collections.Generic.Stack[string]. O nome completo para o tipo Dictionary[int,string] acima sugerido é System.Collections.Generic.Dictionary[int,string].

4.5 Tipos anónimos

Em algumas circunstâncias, uma implementação do PowerShell cria objetos de algum tipo, e esses objetos têm membros acessíveis ao script. Todavia, o nome efetivo desses tipos não precisa de ser especificado, desde que os membros acessíveis sejam suficientemente especificados para que possam ser utilizados. Ou seja, os scripts podem salvar objetos desses tipos e aceder aos seus membros sem realmente saberem os nomes desses tipos. As seguintes subsecções especificam estes tipos.

4.5.1 Tipo de descrição do fornecedor

Este tipo engloba o estado de um fornecedor. Tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Unidades Propriedade de instância (apenas leitura) Implementação definida (§4.5.2) Uma coleção de objetos de descrição de unidade
Name Propriedade de instância (apenas leitura) string O nome do provedor

No PowerShell, este tipo é System.Management.Automation.ProviderInfo.

4.5.2 Tipo de descrição de unidade

Este tipo encapsula o estado de uma unidade. Tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
ActualLocalização Propriedade de exemplo (ler-escrever) string O local de trabalho atual (§3.1.4) da unidade
Description Propriedade de exemplo (ler-escrever) string A descrição da unidade
Name Propriedade de instância (apenas leitura) string O nome da unidade
Raiz Propriedade de instância (apenas leitura) string O nome da unidade

No PowerShell, este tipo é System.Management.Automation.PSDriveInfo.

4.5.3 Tipo de descrição variável

Este tipo encapsula o estado de uma variável. Tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Atributos Propriedade de instância (apenas leitura) Implementação definida Uma coleção de atributos
Description Propriedade de exemplo (ler-escrever) string A descrição atribuída à variável através dos cmdlets new-variable ou set-variable .
Módulo Propriedade de instância (apenas leitura) Implementação definida (§4.5.12) O módulo a partir do qual esta variável foi exportada
Nome do Módulo Propriedade de instância (apenas leitura) string O módulo em que esta variável foi definida
Name Propriedade de instância (apenas leitura) string O nome atribuído à variável quando foi criado na língua PowerShell ou através dos New-Variable cmdlets e Set-Variable cmdlets.
Opções Propriedade de exemplo (ler-escrever) string As opções atribuídas à variável através dos New-Variable cmdlets e Set-Variable cmdlets.
Valor Propriedade de exemplo (ler-escrever) objeto O valor atribuído à variável quando foi atribuído na língua PowerShell ou através dos New-Variable cmdlets e Set-Variable cmdlets.

No PowerShell, este tipo é System.Management.Automation.PSVariable.

Windows PowerShell: O tipo de coleção de atributos é System.Management.Automation.PSVariableAttributeCollection.

4.5.4 Tipo de descrição de alias

Este tipo encapsula o estado de um pseudónimo. Tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Tipo de Comando Propriedade de instância (apenas leitura) Implementação definida Deve comparar-se com "Alias".
Definição Propriedade de instância (apenas leitura) string O comando ou pseudónimo ao qual o pseudónimo foi atribuído através dos cmdlets New-Alias ou Set-Alias .
Description Propriedade de exemplo (ler-escrever) string A descrição atribuída ao pseudónimo através dos New-Alias cmdlets ou Set-Alias cmdlets.
Módulo Propriedade de instância (apenas leitura) Implementação definida (§4.5.12) O módulo a partir do qual este pseudónimo foi exportado
Nome do Módulo Propriedade de instância (apenas leitura) string O módulo em que este pseudónimo foi definido
Name Propriedade de instância (apenas leitura) string O nome atribuído ao pseudónimo quando foi criado através dos New-Alias cmdlets ou Set-Alias cmdlets.
Opções Propriedade de exemplo (ler-escrever) string As opções atribuídas ao pseudónimo através do New-Alias New-Alias ou Set-Alias cmdlets.
Tipo de saída Propriedade de instância (apenas leitura) Coleção definida de implementação Especifica os tipos de saída dos valores pelo comando a que o pseudónimo se refere.
Parâmetros Propriedade de instância (apenas leitura) Coleção definida de implementação Os parâmetros do comando.
Parâmetros Conjuntos Propriedade de instância (apenas leitura) Coleção definida de implementação Informação sobre os parâmetros associados ao comando.
Comumand referenciado Propriedade de instância (apenas leitura) Implementação definida Informação sobre o comando que é imediatamente referenciado por este pseudónimo.
ResolvidaCommand Propriedade de instância (apenas leitura) Implementação definida Informação sobre o comando ao qual o pseudónimo eventualmente resolve.

No PowerShell, este tipo é System.Management.Automation.AliasInfo.

4.5.5 Tipo de descrição da localização de trabalho

Este tipo encapsula o estado de um local de trabalho. Tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Lista de unidades Propriedade de instância (apenas leitura) Implementação definida (§4.5.2) Um objeto de descrição de unidade
Caminho Propriedade de instância (apenas leitura) string O local de trabalho
Fornecedor Propriedade de instância (apenas leitura) Implementação definida (§4.5.1) O provedor
ProvedorA DePata Propriedade de instância (apenas leitura) string O caminho atual do provedor

Uma pilha de locais de trabalho é uma coleção de objetos de localização de trabalho, como descrito acima.

No PowerShell, um local de trabalho atual é representado por um objeto do tipo System.Management.Automation.PathInfo. Uma pilha de locais de trabalho é representada por um objeto do tipo System.Management.Automation.PathInfoStack, que é uma coleção de PathInfo objetos.

4.5.6 Tipo de descrição variável do ambiente

Este tipo encapsula o estado de uma variável ambiental. Tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Name Propriedade de exemplo (ler-escrever) string O nome da variável ambiental
Valor Propriedade de exemplo (ler-escrever) string O valor da variável ambiental

No PowerShell, este tipo é System.Collections.DictionaryEntry. O nome da variável é a chave do dicionário. O valor da variável ambiental é o valor do dicionário. O nome é um AliasProperty que equivale a Key.

4.5.7 Tipo de descrição da aplicação

Este tipo encapsula o estado de uma aplicação. Tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Tipo de Comando Propriedade de instância (apenas leitura) Implementação definida Deve comparar-se igual a "Aplicação".
Definição Propriedade de instância (apenas leitura) string Uma descrição do pedido.
Extensão Propriedade de exemplo (ler-escrever) string A extensão do ficheiro de candidatura.
Módulo Propriedade de instância (apenas leitura) Implementação definida (§4.5.12) O módulo que define este comando.
Nome do Módulo Propriedade de instância (apenas leitura) string O nome do módulo que define o comando.
Name Propriedade de instância (apenas leitura) string O nome do comando.
Tipo de saída Propriedade de instância (apenas leitura) Coleção definida de implementação Especifica os tipos de saída dos valores pelo comando.
Parâmetros Propriedade de instância (apenas leitura) Coleção definida de implementação Os parâmetros do comando.
Parâmetros Conjuntos Propriedade de instância (apenas leitura) Coleção definida de implementação Informação sobre os parâmetros associados ao comando.
Caminho Propriedade de instância (apenas leitura) string Obtém o caminho do ficheiro de inscrição.

No PowerShell, este tipo é System.Management.Automation.ApplicationInfo.

4.5.8 Tipo de descrição do cmdlet

Este tipo encapsula o estado de um cmdlet. Tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Tipo de Comando Propriedade de instância (apenas leitura) Implementação definida Deve comparar-se com "Cmdlet".
PadrãoParameterSet Propriedade de instância (apenas leitura) Implementação definida O parâmetro padrão definido que é utilizado se o PowerShell não conseguir determinar qual o parâmetro definido a utilizar com base nos argumentos fornecidos.
Definição Propriedade de instância (apenas leitura) string Uma descrição do cmdlet.
HelpFile Propriedade de exemplo (ler-escrever) string O caminho para o ficheiro ajuda para o cmdlet.
Tipo de Implementação Propriedade de exemplo (ler-escrever) Implementação definida O tipo que implementa o cmdlet.
Módulo Propriedade de instância (apenas leitura) Implementação definida (§4.5.12) O módulo que define este cmdlet.
Nome do Módulo Propriedade de instância (apenas leitura) string O nome do módulo que define o cmdlet.
Name Propriedade de instância (apenas leitura) string O nome do cmdlet.
Substantivo Propriedade de instância (apenas leitura) string O nome substantivo do cmdlet.
Tipo de saída Propriedade de instância (apenas leitura) Coleção definida de implementação Especifica os tipos de saída dos valores pelo cmdlet.
Parâmetros Propriedade de instância (apenas leitura) Coleção definida de implementação Os parâmetros do cmdlet.
Parâmetros Conjuntos Propriedade de instância (apenas leitura) Coleção definida de implementação Informação sobre os conjuntos de parâmetros associados ao cmdlet.
Verbo Propriedade de instância (apenas leitura) string O nome verbo do cmdlet.
PSSnapIn Propriedade de instância (apenas leitura) Implementação definida Windows PowerShell: Informações sobre o encaixe Windows Powershell que é usado para registar o cmdlet.

No PowerShell, este tipo é System.Management.Automation.CmdletInfo.

4.5.9 Tipo de descrição do guião externo

Este tipo encapsula o estado de uma escrita externa (que é diretamente executável pela PowerShell, mas que não está incorporada). Tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Tipo de Comando Propriedade de instância (apenas leitura) Implementação definida Deve comparar-se com "ExternalScript".
Definição Propriedade de instância (apenas leitura) string Uma definição do guião.
Módulo Propriedade de instância (apenas leitura) Implementação definida (§4.5.12) O módulo que define este guião.
Nome do Módulo Propriedade de instância (apenas leitura) string O nome do módulo que define o script.
Name Propriedade de instância (apenas leitura) string O nome do guião.
OriginalEncoding Propriedade de instância (apenas leitura) Implementação definida A codificação original usada para converter os caracteres do script para bytes.
Tipo de saída Propriedade de instância (apenas leitura) Coleção definida de implementação Especifica os tipos de saída dos valores pelo script.
Parâmetros Propriedade de instância (apenas leitura) Coleção definida de implementação Os parâmetros do guião.
Parâmetros Conjuntos Propriedade de instância (apenas leitura) Coleção definida de implementação Informação sobre os conjuntos de parâmetros associados ao script.
Caminho Propriedade de instância (apenas leitura) string O caminho para o ficheiro do guião.
ScriptBlock Propriedade de instância (apenas leitura) bloco de scripts O guião externo.
ScriptContents Propriedade de instância (apenas leitura) string O conteúdo original do guião.

No PowerShell, este tipo é System.Management.Automation.ExternalScriptInfo.

4.5.10 Tipo de descrição da função

Este tipo encapsula o estado de uma função. Tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
CmdletBinding Propriedade de instância (apenas leitura) bool Indica se a função utiliza a mesma ligação de parâmetros que os cmdlets compilados utilizam (ver §12.3.5).
Tipo de Comando Propriedade de instância (apenas leitura) Implementação definida Pode ser comparado para a igualdade com "Função" ou "Filtro" para ver qual desses objetos representa.
PadrãoParameterSet Propriedade de instância (apenas leitura) string Especifica o parâmetro definido para utilizar se tal não puder ser determinado a partir dos argumentos (ver §12.3.5).
Definição Propriedade de instância (apenas leitura) string Uma versão de cadeia do ScriptBlock
Description Propriedade de exemplo (ler-escrever) string A descrição da função.
Módulo Propriedade de instância (apenas leitura) Implementação definida (§4.5.12) O módulo a partir do qual esta função foi exportada
Nome do Módulo Propriedade de instância (apenas leitura) string O módulo em que esta função foi definida
Name Propriedade de instância (apenas leitura) string O nome da função
Opções Propriedade de exemplo (ler-escrever) Implementação definida As opções de âmbito para a função (§3.5.4).
Tipo de saída Propriedade de instância (apenas leitura) Coleção definida de implementação Especifica os tipos de saída dos valores, por ordem (ver §12.3.6).
Parâmetros Propriedade de instância (apenas leitura) Coleção definida de implementação Especifica os nomes dos parâmetros, por ordem. Se a função agir como um cmdlet (ver CmdletBinding acima), os parâmetros comuns estão incluídos no final da coleção.
Parâmetros Conjuntos Propriedade de instância (apenas leitura) Coleção definida de implementação Informação sobre os parâmetros associados ao comando. Para cada parâmetro, o resultado mostra o nome e o tipo do parâmetro, e indica se o parâmetro é obrigatório, por posição ou por um parâmetro de comutação. Se a função agir como um cmdlet (ver CmdletBinding acima), os parâmetros comuns estão incluídos no final da coleção.
ScriptBlock Propriedade de instância (apenas leitura) scriptblock (§4.3.6) O corpo da função

No PowerShell, este tipo é System.Management.Automation.FunctionInfo.

  • CommandType tem tipo System.Management.Automation.CommandTypes.
  • Options tem tipo System.Management.Automation.ScopedItemOptions.
  • OutputType tem tipo System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.PSTypeName,System.Management.Automation]].
  • Parameters tem tipo System.Collections.Generic.Dictionary``2[[System.String,mscorlib],[System.Management.Automation.ParameterMetadata,System.Management.Automation]].
  • ParameterSets tem tipo System.Collections.ObjectModel.ReadOnlyCollection``1[[System.Management.Automation.CommandParameterSetInfo,System.Management.Automation]].
  • A visibilidade tem o tipo System.Management.Automation.SessionStateEntryVisibility.
  • PowerShell também tem uma propriedade chamada Visibilidade.

4.5.11 Tipo de descrição do filtro

Este tipo encapsula o estado de um filtro. Tem o mesmo conjunto de membros acessíveis que o tipo de descrição da função (§4.5.10).

No PowerShell, este tipo é System.Management.Automation.FilterInfo. Tem o mesmo conjunto de propriedades que System.Management.Automation.FunctionInfo (§4.5.11).

4.5.12 Tipo de descrição do módulo

Este tipo encapsula o estado de um módulo. Tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Description Propriedade de exemplo (ler-escrever) string A descrição do módulo (definido pelo manifesto)
MóduloType Propriedade de instância (apenas leitura) Implementação definida O tipo do módulo (Manifesto, Script ou Binário)
Name Propriedade de instância (apenas leitura) string O nome do módulo
Caminho Propriedade de instância (apenas leitura) string O caminho do módulo

No PowerShell, este tipo é System.Management.Automation.PSModuleInfo. O tipo de ModuleType é System.Management.Automation.ModuleType.

4.5.13 Tipo de descrição de objeto personalizado

Este tipo encapsula o estado de um objeto personalizado. Não tem membros acessíveis.

No PowerShell, este tipo é System.Management.Automation.PSCustomObject. Os cmdlets Import-Module e New-Object podem gerar um objeto deste tipo.

4.5.14 Tipo de descrição do comando

A variável $PsCmdlet automática é um objeto que representa o cmdlet ou função que está a ser executado. O tipo deste objeto é definido; tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Nome DeSet De Parâmetros Propriedade de instância (apenas leitura) string Nome do parâmetro atual (ver Nome set De parâmetro)
Deve Continuar Método de instância

Sobrecarregado

/bool

Solicita a confirmação de uma operação do utilizador.
Deve Processar Método de instância

Sobrecarregado

/bool

Solicita confirmação do utilizador antes de ser realizada uma operação.

No PowerShell, este tipo é System.Management.Automation.PSScriptCmdlet.

4.5.15 Tipo de descrição do registo de erro

A variável $Error automática contém uma coleção de registos de erros que representam erros recentes (§3.12). Embora o tipo desta coleção não seja especificado, ele suporta a subescrição para ter acesso a registos de erros individuais.

No PowerShell, o tipo de recolha é System.Collections.ArrayList. O tipo de registo de erro individual na coleção é System.Management.Automation.ErrorRecord. Este tipo tem os seguintes imóveis públicos:

  • CategoriaInfo - Obtém informações sobre a categoria do erro.
  • ErrorDetails - Obtém e define informações de erro mais detalhadas, como uma mensagem de erro de substituição.
  • Exceção - Obtém a exceção associada a este registo de erro.
  • FullQualifiedErrorId - Obtém o identificador de erro totalmente qualificado para este registo de erro.
  • InvocationInfo - Obtém informações sobre o comando que foi invocado quando ocorreu o erro.
  • PipelineIterationInfo - Obtém o estado do gasoduto quando este registo de erro foi criado
  • TargetObject - Obtém o objeto que estava a ser processado quando ocorreu o erro.

4.5.16 Tipo de descrição do enumerador

Algumas variáveis são enumeradores para coleções (§4). A variável $foreach automática é o enumerador criado para qualquer foreach declaração. A variável $input automática é o enumerador de uma coleção entregue a uma função a partir do gasoduto. A variável $switch automática é o enumerador criado para qualquer switch declaração.

O tipo de enumerador é definido; tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Atual Propriedade de instância (apenas leitura) objeto Obtém o elemento atual na coleção. Se o enumerador não estiver atualmente posicionado num elemento da coleção, o comportamento é definido.
MoveNext Método de instância Nenhum/bool Avança o enumerador para o próximo elemento da coleção. Devoluções $true se o enumerador foi avançado com sucesso para o elemento seguinte; $false se o enumerador passou o fim da coleção.

No PowerShell, estes membros são definidos na interface System.IEnumerator, que é implementada pelos tipos identificados abaixo. Se o enumerador não estiver atualmente posicionado num elemento da coleção, é levantada uma exceção do tipo InvalidOperationException . Para $foreach, este tipo é System.Array+SZArrayEnumerator. Para $input, este tipo é System.Collections.ArrayList+ArrayListEnumeratorSimple. Para $switch, este tipo é System.Array+SZArrayEnumerator.

4.5.17 Tipo de descrição do diretório

O cmdlet New-Item pode criar itens de vários tipos, incluindo diretórios fileSystem. O tipo de objeto de descrição do diretório é definido; tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Atributos Propriedade de exemplo (ler-escrever) Implementação definida (§4.2.6.3) Recebe ou define um ou mais dos atributos do objeto do diretório.
HoraDaCriação Propriedade de exemplo (ler-escrever) Implementação definida (§4.5.19) Obtém e define o tempo de criação do objeto do diretório.
Extensão Propriedade de instância (apenas ler) string Obtém a parte da extensão do nome do diretório.
FullName Propriedade de instância (apenas leitura) string Fica com o caminho completo do diretório.
Última Hora da Morte Propriedade de exemplo (ler-escrever) Implementação definida (§4.5.19) Recebe e define o tempo em que o diretório foi escrito pela última vez.
Name Propriedade de instância (apenas ler) string Tem o nome do diretório.

No PowerShell, este tipo é System.IO.DirectoryInfo. O tipo de propriedade Atributos é System.IO.FileAttributes.

4.5.18 Tipo de descrição de ficheiro

O cmdlet New-Item pode criar itens de vários tipos, incluindo ficheiros FileSystem. O tipo de objeto de descrição de ficheiro é definido; tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Atributos Propriedade de exemplo (ler-escrever) Implementação definida (§4.2.6.3) Recebe ou define um ou mais dos atributos do objeto de ficheiro.
Nome base Propriedade de instância (apenas ler) string Obtém o nome do ficheiro excluindo a extensão.
HoraDaCriação Propriedade de exemplo (ler-escrever) Implementação definida (§4.5.19) Obtém e define o tempo de criação do objeto de arquivo.
Extensão Propriedade de instância (apenas ler) string Obtém a parte da extensão do nome do ficheiro.
FullName Propriedade de instância (apenas leitura) string Fica com o caminho completo do ficheiro.
Última Hora da Morte Propriedade de exemplo (ler-escrever) Implementação definida (§4.5.19) Recebe e define a hora em que o ficheiro foi escrito pela última vez.
Comprimento Propriedade de instância (apenas ler) long Fica com o tamanho do ficheiro, em bytes.
Name Propriedade de instância (apenas ler) string O nome do ficheiro.
VersionInfo Propriedade de instância (apenas ler) Implementação definida Windows PowerShell: Esta ScriptProperty devolve um System.Diagnostics.FileVersionInfo para o ficheiro.

No PowerShell, este tipo é System.IO.FileInfo.

4.5.19 Date-Time tipo de descrição

O tipo de objeto de descrição da data é definido; tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Dia Propriedade de instância (apenas leitura) int Obtém o componente do dia do mês representado por este caso.
Hora Propriedade de instância (apenas leitura) int Obtém o componente de hora da data representado por este caso.
Minuto Propriedade de instância (apenas leitura) int Obtém o componente minúsculo da data representada por este caso.
Mensal Propriedade de instância (apenas leitura) int Obtém o componente mensal da data representada por este caso.
Second Propriedade de instância (apenas leitura) int Obtém o componente de segundos da data representado por este caso.
Anual Propriedade de instância (apenas leitura) int Obtém-se o componente do ano da data representada por este caso.

Um objeto deste tipo pode ser criado por cmdlet Get-Date.

No PowerShell, este tipo é System.DateTime.

4.5.20 Group-Info tipo de descrição

O tipo de objeto de descrição de informação de grupo é definido; tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
de palavras Propriedade de instância (apenas leitura) int Obtém o número de elementos no grupo.
Group Propriedade de instância (apenas leitura) Coleção definida para implementação Obtém os elementos do grupo.
Name Propriedade de instância (apenas leitura) string Tem o nome do grupo.
Valores Propriedade de instância (apenas leitura) Coleção definida para implementação Obtém os valores dos elementos do grupo.

Um objeto deste tipo pode ser criado por cmdlet Group-Object.

No PowerShell, este tipo é Microsoft.PowerShell.Commands.GroupInfo.

4.5.21 Tipo de descrição genérica-medida-info

O tipo de objeto de descrição genérica de informação de medida é definido; tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Média Propriedade de instância (apenas leitura) double Obtém a média dos valores das propriedades que são medidas.
de palavras Propriedade de instância (apenas leitura) int Obtém o número de objetos com as propriedades especificadas.
Máximo Propriedade de instância (apenas leitura) double Obtém o valor máximo das propriedades especificadas.
Mínimo Propriedade de instância (apenas leitura) double Obtém o valor mínimo das propriedades especificadas.
Propriedade Propriedade de instância (apenas leitura) string Faz com que a propriedade seja medida.
Soma Propriedade de instância (apenas leitura) double Obtém a soma dos valores das propriedades especificadas.

Um objeto deste tipo pode ser criado por cmdlet Measure-Object.

No PowerShell, este tipo é Microsoft.PowerShell.Commands.GenericMeasureInfo.

4.5.22 Tipo de descrição de texto-medida-info

O tipo de objeto de descrição de informação de texto é definido; tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Personagens Propriedade de instância (apenas leitura) int Obtém o número de caracteres no objeto alvo.
Linhas Propriedade de instância (apenas leitura) int Obtém o número de linhas no objeto alvo.
Propriedade Propriedade de instância (apenas leitura) string Faz com que a propriedade seja medida.
Palavras Propriedade de instância (apenas leitura) int Obtém o número de palavras no objeto alvo.

Um objeto deste tipo pode ser criado por cmdlet Measure-Object.

No PowerShell, este tipo é Microsoft.PowerShell.Commands.TextMeasureInfo.

4.5.23 Tipo credencial

Um objeto credencial pode então ser usado em várias operações de segurança. O tipo de objeto credencial é definido; tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Palavra-passe Propriedade de instância (apenas leitura) Implementação definida Obtém a senha.
Nome de Utilizador Propriedade de instância (apenas leitura) string Obtém o nome de utilizador.

Um objeto deste tipo pode ser criado pela cmdlet Get-Credential.

No PowerShell, este tipo é System.Management.Automation.PSCredential.

4.5.24 Tipo de designador de método

O tipo de designador de método é definido; tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Invocar Método de instância objeto/número variável e tipo Requer um número variável de argumentos, e indiretamente chama o método referido pelo designador do método-mãe, passando nos argumentos.

Um objeto deste tipo pode ser criado por uma expressão de invocação (§7.1.3).

No PowerShell, este tipo é System.Management.Automation.PSMethod.

4.5.25 Tipo de definição de membro

Este tipo encapsula a definição de membro. Tem os seguintes membros acessíveis:

Membro Membro Tipo Tipo Objetivo
Definição Propriedade de instância (apenas leitura) string Obtém a definição do membro.
MembroType Propriedade de instância (apenas leitura) Implementação definida Obtém o tipo PowerShell do membro.
Name Propriedade de instância (apenas leitura) string Tem o nome do membro.
Nome tipo Propriedade de instância (apenas leitura) string Obtém o nome do membro.

No PowerShell, este tipo é Microsoft.PowerShell.Commands.MemberDefinition.

4.6 Tipo extensão e adaptação

Uma implementação powerShell inclui uma família de tipos principais (que estão documentados neste capítulo) que cada um contém o seu próprio conjunto de membros base. Esses membros podem ser métodos ou propriedades, e podem ser membros de instância ou estática. Por exemplo, os membros base da cadeia tipo (§4.3.1) são os métodos de propriedade de instância e os métodos de instância ToLower e ToUpper.

Quando um objeto é criado, contém todas as propriedades de instância do tipo desse objeto, e os métodos de instância desse tipo podem ser chamados nesse objeto. Um objeto pode ser personalizado através da adição de membros de instância no tempo de execução. O resultado é chamado de objeto personalizado. Todos os membros adicionados a um caso só existem para a vida desse caso; outros casos do mesmo tipo de núcleo não são afetados.

O conjunto de membros base de um tipo pode ser aumentado pela adição dos seguintes tipos de membros:

  • membros adaptados, através do Sistema de Tipo Estendido (ETS), cujos detalhes não são especificados.
  • membros estendidos, através do cmdlet Add-Member.

No PowerShell, os membros estendidos também podem ser adicionados através de types.ps1xml ficheiros. Os membros adaptados e estendidos são coletivamente chamados membros sintéticos.

O ETS adiciona os seguintes membros a todos os objetos PowerShell: psbase, psadapted, psextended e pstypenames. Consulte os parâmetros Force and View no cmdlet Get-Member para obter mais informações sobre estes membros.

Um membro da instância pode esconder um membro estendido e/ou adaptado com o mesmo nome, e um membro estendido pode esconder um membro adaptado. Nesses casos, os conjuntos de membros psadapted e psextended podem ser usados para aceder a esses membros ocultos.

Se um types.ps1xml membro especificador um membro chamado Supports, obj.psextended fornece acesso a apenas esse membro e não a um membro adicionado via Add-Member.

Existem três maneiras de criar um objeto personalizado tendo um novo membro M:

  1. Esta abordagem pode ser usada para adicionar um ou mais membros NoteProperty.

    $x = New-Object PsObject -Property @{M = 123}`
    
  2. Esta abordagem pode ser usada para adicionar membros NoteProperty ou ScriptMethod.

    $x = New-Module -AsCustomObject {$M = 123 ; Export-ModuleMember --Variable M}`
    
  3. Esta abordagem pode ser usada para adicionar qualquer tipo de membro.

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

PsObject é o tipo base de todos os tipos PowerShell.