Select-Object
Seleciona as propriedades especificadas de um objeto ou conjunto de objetos. Ele também pode selecionar objetos exclusivos de uma matriz de objetos ou pode selecionar um número especificado de objetos do início ou do final de uma matriz de objetos.
Sintaxe
Select-Object [[-Property] <Object[]>] [-ExcludeProperty <string[]>] [-ExpandProperty <string>] [-First <int>] [-InputObject <psobject>] [-Last <int>] [-Skip <int>] [-Unique] [<CommonParameters>]
Select-Object [-Index <Int32[]>] [-InputObject <psobject>] [-Unique] [<CommonParameters>]
Descrição
O cmdlet Select-Object obtém apenas as propriedades especificadas de um objeto ou de um conjunto de objetos. Ele também pode selecionar objetos exclusivos de uma matriz de objetos ou pode selecionar um número especificado de objetos do início ou do final de uma matriz de objetos.
Se você usar Select-Object para selecionar propriedades especificadas, ele copiará os valores dessas propriedades a partir dos objetos de entrada e criará novos objetos que tenham as propriedades especificadas e os valores copiados.
Use o parâmetro Property para especificar as propriedades que você deseja selecionar. Ou use os parâmetros First, Last, Unique, Skip e Index para selecionar determinados objetos de qualquer matriz de objetos de entrada. Para obter uma filtragem de objetos mais específica, use o cmdlet Where-Object.
Parâmetros
-ExcludeProperty <string[]>
Remove as propriedades especificadas da seleção. Os caracteres curinga são permitidos. Esse parâmetro só é efetivo quando o comando também inclui o parâmetro Property.
O valor do parâmetro de propriedade pode ser uma propriedade calculada, que é uma tabela de hash que especifica um nome e calcula um valor para a exibição da propriedade. As chaves válidas são:
-- Name ou Label <cadeia de caracteres>
-- Expression <cadeia de caracteres> ou <bloco de script>
Para obter mais informações, consulte os exemplos.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
true |
-ExpandProperty <string>
Especifica uma propriedade a ser selecionada e indica que uma tentativa deve ser realizada para expandir essa propriedade. São permitidos caracteres curinga no nome da propriedade.
Por exemplo, se a propriedade especificada for uma matriz, cada valor da matriz será incluído na saída. Se a propriedade contiver um objeto, as propriedades desse objeto serão exibidas na saída.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
true |
-First <int>
Especifica o número de objetos a serem selecionados no início de uma matriz de objetos de entrada.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Index <Int32[]>
Seleciona objetos de uma matriz com base nos seus valores de índice. Digite os índices em uma lista separada por vírgulas.
Índices em uma matriz começam com 0, em que 0 representa o primeiro valor e (n-1) representa o último valor.
Necessário? |
false |
Posição? |
named |
Valor padrão |
Nenhum |
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-InputObject <psobject>
Especifica os objetos a serem enviados ao cmdlet pelo pipeline. Esse parâmetro permite canalizar objetos para Select-Object.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
true (ByValue) |
Aceitar caracteres curinga? |
false |
-Last <int>
Especifica o número de objetos a serem selecionados no final de uma matriz de objetos de entrada.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Property <Object[]>
Especifica as propriedades a serem selecionadas. Os caracteres curinga são permitidos.
O valor do parâmetro Property pode ser uma nova propriedade calculada. Para criar uma propriedade calculada, use uma tabela de hash. As chaves válidas são:
-- Name (ou Label) <cadeia de caracteres>
-- Expression <cadeia de caracteres> ou <bloco de script>
Necessário? |
false |
Posição? |
1 |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
true |
-Skip <int>
Ignora (não seleciona) o número especificado de itens. Por padrão, o parâmetro Skip conta a partir do início da matriz ou lista de objetos, mas se o comando usar o parâmetro Last, ele contará a partir do final da lista ou matriz.
Ao contrário do parâmetro Index, que inicia a contagem a partir de 0, o parâmetro Skip inicia em 1.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
-Unique
Especifica que se um subconjunto dos objetos de entrada tiver propriedades e valores idênticos, somente um único membro do subconjunto será selecionado.
Necessário? |
false |
Posição? |
named |
Valor padrão |
|
Aceitar entrada do pipeline? |
false |
Aceitar caracteres curinga? |
false |
<CommonParameters>
Esse cmdlet oferece suporte aos parâmetros comuns: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Para obter mais informações, consulte about_Commonparameters.
Entradas e saídas
O tipo de entrada é o tipo dos objetos que você pode canalizar para o cmdlet. O tipo de retorno é o tipo dos objetos que o cmdlet retorna.
Entradas |
System.Management.Automation.PSObject Você pode canalizar qualquer objeto para Select-Object. |
Saídas |
System.Management.Automation.PSObject |
Observações
Você também pode se referir a Select-Object usando seu alias interno, "select". Para obter mais informações, consulte about_Aliases.
Exemplo 1
C:\PS>get-process | select-object ProcessName,Id,WS
Descrição
-----------
Este comando exibe uma lista dos processos. Somente as propriedades Name, ID e Working Set (WS) dos processos são exibidas.
Exemplo 2
C:\PS>get-process | select-object processname -expandproperty modules |
format-list
ProcessName : 00THotkey
Size : 256
Company : TOSHIBA Corporation
FileVersion : 1, 0, 0, 27
ProductVersion : 6, 2, 0, 0
Description : THotkey
Product : TOSHIBA THotkey
ModuleName : 00THotkey.exe
FileName : C:\WINDOWS\system32\00THotkey.exe
BaseAddress : 4194304
Descrição
-----------
Este comando exibe informações sobre os módulos usados pelos processos em execução em um computador. Ele usa o parâmetro ExpandProperty para exibir os detalhes contidos na propriedade dos módulos.
Exemplo 3
C:\PS>get-process | sort-object -property WS | select-object -Last 5
Handles NPM(K) PM(K) WS(K) VS(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
2866 320 33432 45764 203 222.41 1292 svchost
577 17 23676 50516 265 50.58 4388 WINWORD
826 11 75448 76712 188 19.77 3780 Ps
1367 14 73152 88736 216 61.69 676 Ps
1612 44 66080 92780 380 900.59 6132 INFOPATH
Descrição
-----------
Esse comando exibe os cinco processos que estão usando a maior parte da memória. O cmdlet Sort-Object é utilizado para classificar os processos de acordo com o uso da memória (conjunto de trabalho); o cmdlet Select-Object é utilizado para selecionar somente os últimos cinco membros da matriz resultante de objetos.
Exemplo 4
C:\PS>get-process | select-object -property ProcessName,@{Name="Start Day"; Expression = {$_.StartTime.DayOfWeek}}
ProcessName StartDay
---- --------
alg Wednesday
ati2evxx Wednesday
ati2evxx Thursday
...
Descrição
-----------
Este comando exibe o nome e o dia de início dos processos em execução em um computador.
Os valores do parâmetro Property são ProcessName e uma propriedade calculada denominada "Start Day". A propriedade "Start Day" é adicionada usando uma tabela de hash com as chaves Name e Expression.
Exemplo 5
C:\PS>"a","b","c","a","a","a" | select-object -unique
a
b
c
Descrição
-----------
Este comando exibe caracteres exclusivos de uma matriz de caracteres.
Exemplo 6
C:\PS>$a = get-eventlog -log "Windows PowerShell"
C:\PS> $a | select-object -index 0, ($a.count - 1)
Descrição
-----------
Esses comandos obtêm o primeiro (mais recente) e o último (mais antigo) eventos no log de eventos do Windows PowerShell.
O primeiro comando usa o cmdlet Get-EventLog para obter todos os eventos no log de eventos do Windows PowerShell. Ele salva os eventos na variável $a.
O segundo comando usa um operador de pipeline (|) para enviar os eventos em $a para o Select-Object. O comando Select-Object usa o parâmetro Index para selecionar itens por seu número de índice. O índice do primeiro evento é 0. O índice do último evento é o número de itens em $a menos 1.
Exemplo 7
C:\PS>new-pssession -computername (get-content servers.txt | select-object -skip 1)
Descrição
-----------
Esse comando cria um novo PSSession em cada um dos computadores listados nos arquivos Servers.txt, com exceção do primeiro.
Esse comando usa o cmdlet Select-Object para selecionar todos menos o primeiro computador em uma lista de nomes de computador. A lista resultante de computadores é definida como o valor do parâmetro ComputerName do cmdlet New-PSSession.