none
Copiar Linhas do Prompt DOS/Command via VBA RRS feed

  • Pergunta

  • Boa Tarde amigos.

    Preciso de uma ajuda... Rodei a web dois dias e não encontrei uma solução para meu problema.

    Seguinte, tenho que entrar em uns roteadores via Telnet, dá alguns comandos e puxar os IPs de Lan, Wan, Vlan e tal... São mais de 2mil routers.

    Eu fiz um código em VBA que abre o Telnet, coloca o IP do local, usuário e senha e digita o comando do roteador... Nossa, fiquei feliz que funcionou.

    A tela está com o prompt, resultados na tela, tudo que eu preciso fazer agora é copiar desde a primeira linha (comando anterior) até a última linha que contem " # "

    Ai que mora o problema, não consigo selecionar e copiar o resultado do comando no roteador que está no prompt do DOS. Alguém sabe como poderia resolver isso? Tem algum código que possa selecionar determinado ponto da tela do prompt, copiar e colar numa célula do Excel... ou sei lá, jogar num bloco de notas e depois puxar desse bloco... Meu DEUSSSSS

    # Desesperado #

    Desde já agradecido!
    quarta-feira, 9 de abril de 2014 13:59

Respostas

Todas as Respostas

  • Boa tarde caio

    Você pode gravar em um arquivo txt as resposta de comando do DOS no prompt.

    Por exemplo:

    C:\>Ipconfig /all > Res_Ipconfigall.txt

    O comando acima grava no arquivo com nome Res_Ipconfigall.txt no diretório c:\ o resultado do comando

    Ipconfig /all          ( sinal > 'maior' após o comando redireciona a saída para arquivo)

    Você pode então ler e copiar partes do arquivo TXT.

    Tem um tópico recente no fórum com código em VBA que instrui como fazer isto.

    Nome do tópico: Ler e copiar apenas uma linha de um arquivo txt

    Espero que ajude.

    Até

    Alberto

    quarta-feira, 9 de abril de 2014 19:47
  • Olá amigo. Obrigado pela dica, consegui testar só agora. Não funcionou.

    Comando é dado dentro de um roteador cisco, então se eu uso o comando, não existe. Olha o código abaixo. Desde ja agradeço:

    Sub TelnetTlf()
    Dim varProc As Variant
    Dim ret As String
    Dim pid As Variant

    i = Shell("c:\windows\system32\telnet.exe", vbNormalFocus)
        
    Application.Wait (Now + TimeValue("0:00:02"))
     
    Dim server As String
    server = "xxx.xxxx.xxx.xx"
        
    SendKeys "open " & server & ""
    SendKeys "~"
     
    Application.Wait (Now + TimeValue("0:00:01"))

    'SendKeys "username"
    SendKeys "~"
     
    Application.Wait (Now + TimeValue("0:00:01"))
     
    'SendKeys "password"
    SendKeys "~"

    SendKeys "sh ip int br > ColetaIPs.txt"  'NÃO FUNCIONOU
    SendKeys "~"
    SendKeys "> ColetaIPs.txt" 'NÃO FUNCIONOU


    End Sub

    quinta-feira, 10 de abril de 2014 20:01
  • Olá Caio, eu estou enfrentando um problema igual a esse porém eu queria somente copiar as respostas dos comandos que rodar no prompt para um arquivo txt, voce conseguiu resolver seu problema?  Pode me ajudar?
    quinta-feira, 7 de maio de 2015 13:43
  • Experimente:

    C:\>Ipconfig /all >> Res_Ipconfigall.txt

    ou seja, dois sinais > ao invés de apenas um.


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    quinta-feira, 7 de maio de 2015 14:46
    Moderador