Conexion a putty con plink.exe y guardar los datos en un archivo de txt

Iniciado por The_Saint, 25 Julio 2013, 14:02 PM

0 Miembros y 1 Visitante están viendo este tema.

The_Saint

Buenas:

Estoy tratando de conectarme a una maquina por putty y descargarme un resultado de la ejecucion de un script, pero el caso es que si lo hago por la consola de windows me guarda correctamente el resultado, pero si lo hago por VBA, no tengo manera de que me guarde el resultado en un archivo.
¿Podeis ayudarme?
Ejemplo:
Esto es un ejemplo del codigo, evidentemente no estan los datos originales.
Sub Putty()
Shell Application.ActiveWorkbook.Path & "\putty\plink.exe -pw pass root@xx.xx.xx.xx ls > resultado.txt", vbNormalFocus
End Sub


::)
<< Si piensas que eres demasiado pequeño para tener impacto.
Prueba a irte a la cama con un mosquito>>

MCKSys Argentina

Probaste usando cmd?

Código (vb) [Seleccionar]

Sub Putty()
Shell "cmd.exe /c " + """" + Application.ActiveWorkbook.Path & "\putty\plink.exe -pw pass root@xx.xx.xx.xx ls > resultado.txt" + """", vbNormalFocus
End Sub
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


The_Saint

La verdad es que me tira con cmd /c tambien pero no consigo que guarde el resultado... quiero que me lo guarde en msdos como hace si lo ejecuto de forma manual.
Estoy en las mismas...  :rolleyes:
<< Si piensas que eres demasiado pequeño para tener impacto.
Prueba a irte a la cama con un mosquito>>

MCKSys Argentina

Y con esto?

Código (vb) [Seleccionar]

Sub Putty()
Shell "cmd.exe /k " + """" + Application.ActiveWorkbook.Path & "\putty\plink.exe -pw pass root@xx.xx.xx.xx ls > resultado.txt | exit" + """", vbNormalFocus
End Sub


También podrías probar usando APIs (ShellExecute, CreateProcess, etc.) a ver si asi da resultado...

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


The_Saint

Voy a probar con la segunda opcion que me das, porque la primera acabo de probar y nada.

Gracias, te digo los resultados en cuanto los obtenga.

Saludos ;-)
<< Si piensas que eres demasiado pequeño para tener impacto.
Prueba a irte a la cama con un mosquito>>

raul338

Basicamente tenes que usar pipes para obtener la salida de algun comando que quieras ejecutar, para redirigir la salida de la consola a alguna variable.

En esta clase esta resumido :P

Usa las funciones Run y ReadOutput

The_Saint

La clase cExec,parece interesante, podrías darme un ejemplo de funcionalidad? o mas documentación?

Saludos.
<< Si piensas que eres demasiado pequeño para tener impacto.
Prueba a irte a la cama con un mosquito>>