Aprendendo o PowerShell, tentando descobrir como analisar o primeiro valor deste conjunto de resultados:
IPAddresses
-----------
{10.60.50.40, fe80::5ddf:a8f4:e29c:b66}
Normalmente eu apenas procuraria, no entanto, não sei se {x, x} é uma espécie de tipo de dados padrão em Powershell
terra.
Preciso fazer uma análise aproximada da string ou existe algum comando padrão para extrair a primeira, como:
... | Select-Object IPAddresses | Select-String [0]
(Acabei de criar a parte da string selecionada. Estou perdido.)
Responder1
Isto é o que tenho até agora:
... Select-Object IPAddresses | ForEach {$_.IPAddresses}[0]
Retorna o primeiro.
Responder2
Experimente assim:
$myResultSet | foreach { $_.IPAddresses[0] }
Responder3
Tentar
$myResultSet | Select-Object -First 1 IPAddress
Seu conjunto de resultados é uma coleção de algum tipo. O Select-Object
cmdlet pega o primeiro item dessa coleção e filtra apenas para a IPAddress
propriedade que é exibida.
Na minha máquina, a saída do comando acima é assim. O seu provavelmente será diferente porque o endereço retornado será diferente
IPAddress
---------
fe80::5581:4fbc:fc22:ec79%13
Você obtém a tabela porque, por padrão, o PowerShell envia a saída Format-Table
para fazer uma bela exibição.
Para acessar apenas o próprio endereço IP, você pode modificar ligeiramente a expressão:
$myResultSet.IPAddress|Select-Object -First 1
ou, usando notação de ponto e um índice na coleção, você pode evitar o uso Select-Object
totalmente assim:
$myResultSet[0].IPAddress
O acima se refere diretamente à IPAddress
propriedade do primeiro item da $myResultSet
coleção, que possui índice zero, portanto$myResultSet[0]
Qualquer um deles retornará apenas o próprio endereço IP, assim:
fe80::5581:4fbc:fc22:ec79%13
Responder4
Primeiro, você não precisa adivinhar qual IPAddresses
é o tipo, você pode obtê-lo facilmente assim:
$myResultSet[0].IPAddresses.GetType()
Provavelmente será algum tipo decoleção (matriz), então você pode usar Select-Object
com ExpandProperty
o parâmetro:
$myResultSet | Select-Object -ExpandProperty 'IPAddresses' | Select-Object -First 1
Ou você pode usaroperador de desreferência de propriedadee\ou indexar comoSmurf aleijadosugerido