Select-Object

Module: Microsoft.PowerShell.Utilitário

selecciona objectos ou propriedades dos objectos.

Sintaxe

Select-Object >] 
Select-Object >] 

Descrição

Select-Object cmdlet seleciona as propriedades específicas de um objeto ou conjunto de objetos. Ele também pode selecionar objetos únicos, um número especificado de objetos, ou objetos em uma posição especificada em anarray.

para selecionar objetos de uma coleção, use os parâmetros Primeiro, Último, único, Skip, andIndex. Para selecionar Propriedades do objeto, use o parâmetro propriedade. Quando selecciona as propostas, o devolve novos objectos que só têm as propriedades indicadas.

começando no Windows PowerShell 3.0, Select-Object inclui uma funcionalidade de otimização que evita a criação e processamento de objetos que não são usados.

Quando incluir um comando Select-Objectcom os primeiros parâmetros ou índices numa linha de comandos, o PowerShell pára o comando que gera os objectos assim que o número seleccionado de objectos é gerado, mesmo quando o comando que gera os objectos aparece antes do comandoSelect-Object na conduta. Para desligar este comportamento de otimização, use o Waitparameter.

exemplos

exemplo 1: Selecione objetos por propriedade

este exemplo cria objetos que têm o nome, ID e propriedades do conjunto de trabalho (WS) dos objetos de processo.

Get-Process | Select-Object -Property ProcessName, Id, WS

Exemplo 2: Selecionar objetos de propriedade e formatar os resultados

Este exemplo obtém informações sobre os módulos utilizados pelos processos no computador. Ele usaGet-Process cmdlet para obter o processo no computador.

usa Select-Object cmdlet para gerar uma matriz de instâncias contidas nos Módulos de propriedade de cada System.Diagnostics.Process instanceoutput por Get-Process.

O parâmetro de propriedade do Select-Object cmdlet seleciona os nomes do processo. Isto adiciona umaProcessName

NoteProperty a cada id

instância e populait com o valor da propriedade Processoname atual.

Finally, Format-List cmdlet is used to display the name and modules of each process in a list.

exemplo 3: Selecione processos usando a maioria da memória

este exemplo recebe os cinco processos que estão usando mais memória. The Get-Process cmdlet gets the processes on the computer. OSort-Object cmdlet ordena os processos de acordo com o uso da memória(conjunto de trabalho), e oSelect-Object cmdlet seleciona apenas os últimos cinco membros da matriz de objetos.

O parâmetro de espera não é necessário nos comandos que incluem o Sort-Object cmdlet porqueSort-Object processa todos os objectos e depois devolve uma colecção. TheSelect-Object optimization is available only for commands that return objects individually as they are processed.exemplo 4: Selecione caracteres únicos de um array

Este exemplo usa o parâmetro único de para obter caracteres únicos de um array de caracteres.

"a","b","c","a","a","a" | Select-Object -Uniqueabc

exemplo 5: Seleccione os eventos mais recentes e mais antigos no registo de eventos

Este exemplo obtém os primeiros (mais recentes) e os últimos (mais antigos) eventos no registo de eventos do Windows PowerShell.

Get-EventLogrecebe todos os eventos no log PowerShell do Windows e guarda-os na variável$a variável.Então, $a é piped to theSelect-Object cmdlet. O comando Select-Object usa o Índice para selecionar eventos da lista de eventos na variável $a. O índice do primeiro evento é 0. O índice do último evento é o número de itens em $a menos 1.

$a = Get-EventLog -LogName "Windows PowerShell"$a | Select-Object -Index 0, ($A.count - 1)

Exemplo 6: Selecione todos, mas o primeiro objeto

Este exemplo cria uma nova PSSession em cada um dos computadores listados nos Servidores.ficheiros txt,excepto o primeiro.

Select-Object seleciona todos menos o primeiro computador em uma lista de nomes de computador. The resulting list of computers is set as the value of the ComputerName parameter of the New-PSSession cmdlet.

New-PSSession -ComputerName (Get-Content Servers.txt | Select-Object -Skip 1)

exemplo 7: mudar o nome dos ficheiros e seleccionar vários para rever

Este exemplo adiciona um sufixo”- ro ” aos nomes de base dos ficheiros de texto que têm a atribuição apenas para leitura e então mostra os cinco primeiros ficheiros para que o utilizador possa ver uma amostra do efeito.

Get-ChildItem utiliza o parâmetro dinâmico ReadOnly para obter ficheiros apenas para leitura. Os arquivos resultantes são canalizados para o Rename-Item cmdlet, que renomeia o arquivo. Ele usa o parâmetro Passthru deRename-Item para enviar os arquivos renomeados para o Select-Object cmdlet, que seleciona os primeiros 5 fordisplay.

O parâmetro de Espera de Select-Object impede o PowerShell de parar o Get-ChildItemcmdlet depois de receber os primeiros cinco só de leitura de ficheiros de texto. Sem este parâmetro, apenas os primeiros cinco arquivos só de leitura seriam renomeados.

Get-ChildItem *.txt -ReadOnly | Rename-Item -NewName {$_.BaseName + "-ro.txt"} -PassThru | Select-Object -First 5 -Wait

exemplo 8: Demonstrar as complexidades do parâmetro-ExpandProperty

este exemplo demonstra as complexidades do parâmetro ExpandProperty.

Note que a saída gerada foi uma matriz de instâncias . As instâncias estão em conformidade com as regras de formatação tostandard da janela de saída. Isto é verdade para quaisquer propriedades expandidas. Se os objetos outputted têm um formato padrão específico, a propriedade expandida pode não ser visível.

# Create a custom object to use for the Select-Object example.$object = @{Name="CustomObject";Expand=@(1,2,3,4,5)}# Use the ExpandProperty parameter to Expand the property.$object | Select-Object -ExpandProperty Expand -Property Name12345# The output did not contain the Name property, but it was added successfully.# Use Get-Member to confirm the Name property was added and populated.$object | Select-Object -ExpandProperty Expand -Property Name | Get-MemberTypeName: System.Int32Name MemberType Definition---- ---------- ----------CompareTo Method int CompareTo(System.Object value), int CompareTo(int value), int IComparable.CompareTo(System.Object obj)...Equals Method bool Equals(System.Object obj), bool Equals(int obj), bool IEquatable.Equals(int other)GetHashCode Method int GetHashCode()GetType Method type GetType()GetTypeCode Method System.TypeCode GetTypeCode(), System.TypeCode IConvertible.GetTypeCode()ToBoolean Method bool IConvertible.ToBoolean(System.IFormatProvider provider)ToByte Method byte IConvertible.ToByte(System.IFormatProvider provider)ToChar Method char IConvertible.ToChar(System.IFormatProvider provider)ToDateTime Method datetime IConvertible.ToDateTime(System.IFormatProvider provider)ToDecimal Method decimal IConvertible.ToDecimal(System.IFormatProvider provider)ToDouble Method double IConvertible.ToDouble(System.IFormatProvider provider)ToInt16 Method int16 IConvertible.ToInt16(System.IFormatProvider provider)ToInt32 Method int IConvertible.ToInt32(System.IFormatProvider provider)ToInt64 Method long IConvertible.ToInt64(System.IFormatProvider provider)ToSByte Method sbyte IConvertible.ToSByte(System.IFormatProvider provider)ToSingle Method float IConvertible.ToSingle(System.IFormatProvider provider)ToString Method string ToString(), string ToString(string format), string ToString(System.IFormatProvider provider)...ToType Method System.Object IConvertible.ToType(type conversionType, System.IFormatProvider provider)ToUInt16 Method uint16 IConvertible.ToUInt16(System.IFormatProvider provider)ToUInt32 Method uint32 IConvertible.ToUInt32(System.IFormatProvider provider)ToUInt64 Method uint64 IConvertible.ToUInt64(System.IFormatProvider provider)Name NoteProperty string Name=CustomObject

exemplo 9: Crie propriedades personalizadas em objetos

o exemplo seguinte demonstra usando Select-Object para adicionar uma propriedade personalizada a qualquer objeto.Quando você especificar um nome de propriedade que não existe, Select-Object cria essa propriedade como aNoteProperty em cada objeto passado.

exemplo 10: Criar propriedades calculadas para cada InputObject

este exemplo demonstra usar para adicionar propriedades calculadas à sua entrada. Passinga ScriptBlock para o parâmetro propriedade faz com que Select-Object avalie a expressão oneach object passado e adicione os resultados ao resultado. Dentro do ScriptBlock, você pode usar a variável$_ para referenciar o objeto atual no pipeline.

Por padrão, Select-Object usará o texto ScriptBlock como o nome da propriedade. Se usar a opção aHashtable, poderá indicar o resultado do seu ScriptBlock como uma propriedade personalizada adicionada ao eachobject. Você pode adicionar várias propriedades calculadas a cada objeto passado para Select-Object.

Parâmetros

-ExcludeProperty

Especifica as propriedades que este cmdlet exclui da operação. São permitidos Wildcards.

começando em PowerShell 6, não é mais necessário incluir o parâmetro de propriedade forExcludeProperty para trabalhar.

Tipo: String
Cargo: Nome
valor Padrão: None
Aceita a entrada de pipeline: False
Aceita caracteres curinga: True
-ExpandProperty

Especifica uma propriedade para selecionar, e indica que uma tentativa deve ser feita para expandir thatproperty.

  • Se a propriedade especificada for um array, cada valor do array é incluído na saída.
  • Se a propriedade especificada for um objecto, as propriedades dos objectos são expandidas para cada item

em qualquer dos casos, o tipo de resultado dos objectos irá corresponder ao tipo da propriedade expandida.

If the Property parameter is specified, will attempt to add each selectedproperty as a NoteProperty to every outputted object.

Aviso

Se receber o erro: seleccione: a propriedade não pode ser processada porque a propriedade <PropertyName>já existe, considere o seguinte.Observe que, ao usar -ExpandPropertySelect-Object não pode substituir uma propriedade existente.Isto significa:

  • Se o objeto expandido tem uma propriedade do mesmo nome, um erro irá ocorrer.
  • Se o objecto seleccionado tiver uma propriedade com o mesmo nome que uma propriedade de objectos expandidos, o anerror irá ocorrer.
Tipo: String
Cargo: Nome
valor Padrão: None
Aceita a entrada de pipeline: False
Aceita caracteres curinga: False
Primeiro

Especifica o número de objectos a seleccionar, desde o início, de uma matriz de objetos de entrada.

Tipo: Int32
Cargo: Nome
valor Padrão: None
Aceita a entrada de pipeline: False
Aceita caracteres curinga: False
Índice

Seleciona objetos a partir de uma matriz com base em seus valores de índice. Indique os índices numa lista separada por vírgulas. Índices em uma matriz começam com 0, onde 0 representa o primeiro valor e (n-1) representa o último valor.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InputObject

Specifies objects to send to the cmdlet through the pipeline. This parameter enables you to pipeobjects to Select-Object.

Quando você passa objetos para o parâmetro InputObject, em vez de usar o pipeline,Select-Object trata o InputObject como um único objeto, mesmo que o valor seja uma coleção. Itis recommended that you use the pipeline when passing collections to Select-Object.

Tipo: PSObject
Cargo: Nome
valor Padrão: None
Aceita a entrada de pipeline: True
Aceita caracteres curinga: False
-Last

Specifies the number of objects to select from the end of an array of input objects.

Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Property

Specifies the properties to select. Estas propriedades são adicionadas como membros do NoteProperty aos objetos output. São permitidos Wildcards.

O valor do parâmetro propriedade pode ser uma nova propriedade calculada. Para criar uma propriedade calculada, use uma tabela de hash.

as chaves Válidas são:

  • Nome (ou Rótulo) – <string>
  • a Expressão <string> ou <script block>

Para mais informações, seeabout_Calculated_Properties.

Tipo: Objeto
Cargo: 0
valor Padrão: None
Aceita a entrada de pipeline: False
Aceita caracteres curinga: True
-Ignorar

Avança (não selecionado) o número especificado de itens. Por padrão, o parâmetro Skip contacta a partir do início do array ou lista de objetos,mas se o comando usa o último parâmetro, ele conta a partir do final da lista ou array.

Ao contrário do parâmetro do índice, que começa a contar em 0, o parâmetro do salto começa em 1.

Tipo: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-SkipIndex
Type: Int32
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-SkipLast

Avança (não selecionado) o número especificado de itens a partir do fim da lista ou matriz. Funciona da mesma forma que usar o Skip em conjunto com o último parâmetro.

Ao contrário do parâmetro índice, que começa a contar em 0, o parâmetro SkipLast começa em 1.

Tipo: Int32
Cargo: Nome
valor Padrão: None
Aceita a entrada de pipeline: False
Aceita caracteres curinga: False
-Único

Especifica que se um subconjunto dos objetos de entrada tem propriedades idênticas e valores, apenas um singlemember do subconjunto será selecionado.este parâmetro é sensível à capitalização. Como resultado, strings que diferem apenas no invólucro de caracteres são consideradas únicas.

Tipo: SwitchParameter
Cargo: Nome
valor Padrão: None
Aceita a entrada de pipeline: False
Aceita caracteres curinga: False
-Espere

Indica que o cmdlet desliga otimização. PowerShell executa comandos na ordem em que eles aparecem no pipeline de comandos e permite-lhes gerar todos os objectos. Por padrão, se você incluir um comandoSelect-Object com os primeiros parâmetros ou índice em um pipeline de comandos, PowerShellstops o comando que gera os objetos assim que o número selecionado de objetos é gerado.

Este parâmetro foi introduzido no Windows PowerShell 3.0.

Tipo: SwitchParameter
Cargo: Nome
valor Padrão: None
Aceita a entrada de pipeline: False
Aceita caracteres curinga: False

Entradas

PSObject

Você pode enviar qualquer objeto Select-Object.

Saídas

PSObject

Notas

  • Você também pode consultar o Select-Object cmdlet por sua built-in alias, select. Para mais informações, consulte sobre as bases de dados.

  • a funcionalidade de otimização de Select-Object está disponível apenas para comandos que escrevem objetos ao pipeline à medida que são processados. Ele não tem efeito em comandos que buffer processaram objetos e os reescrevem como uma coleção. Escrever objetos imediatamente é uma melhor prática de design cmdlet. Para mais informações, consulte escrever registos únicos ao Oleoduto, de forma a incentivar as orientações para o desenvolvimento.

  • about_Calculated_Properties
  • Group-Object
  • Sort-Object
  • Where-Object

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *