Powershell e comandos antigos: como obter o endereço IP, por exemplo

Olá, depois de ver uma dúvida na lista MCPdx (que eu ajudo a moderar), resolvi escrever sobre como funciona o suporte aos comandos antigos no Powershell. A idéia é muito simples: todos os comandos novos, cmdlets e scripts, trabalham e retornam objetos, que o shell se encarrega de organizar, listar e converter para texto que pode ser exibido na tela. Comandos antigos são executados e sua saída é convertida para String. Ok, agora vamos ao exemplo visto na lista. Perguntaram como obter somente o IP da máquina local em um script. Sabemos que existem duas formas de se obter o endereço IP: Comando ipconfig Comando netsh interface ip show address O trabalho agora é somente tratar o texto que os comandos retornam ao Powershell: (ipconfig)[14].split(' ')[-1] ou (netsh interface ip show address)[3].split(' ')[-1] A idéia é muito simples. Primeiro, pegamos a décima quarta ou terceira linha da resposta do comando (ipconfig ou netsh ip interface show address). Isso nos retorna somente uma linha do vetor de linhas que é a saída do comando. A seguir, usamos o método Split (da classe String), que quebra uma linha em um vetor sempre que encontrar um caractere específico... neste caso, o espaço. No final, pegamos a última posição do vetor, que é o IP da máquina (esse [-1] é uma forma de se obter elementos de um vetor, ao estilo do Python ou Ruby. Tem no Powershell também). Simples não? []s, Vinicius

Categorias dessa postagem:

Comentários

Eloy Molina : Eu tenho um VM instalado no meu micro, com isso tive que alterar para pegar sétima linha do comando IPCONFIG. Mas funcionou perfeitamente. [30/5/11 12:27 - link]