Usuário com melhor resposta
Copiar Linhas do Prompt DOS/Command via VBA

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!
Respostas
-
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
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 11 de julho de 2015 17:03
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
-
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 -
-
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
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 11 de julho de 2015 17:03