Duda macro excel para jalar archivo

Hay un programa que genera un archivo con extensión .DAT y dicho programa queda guardado en un servidor.
Posteriormente entro en inicio ejecutar y ejecuto en ambiente del msdos, el siguiente código
ftp: 10.11.11.11(es un ejemplo de dir ftp)
Tecleo a continuación df7784
Y la contraseña y me da acceso
y ahi... Tecleo, cd /usr/dat/principal
Tecleo bin esto es para poder después jalarlo en modo binario
ahí tecleo un comando que se llama get y a continuación datos.dat que es el nombre del archivo
posteriormente me queda el archivo en mi pc y ahí lo puedo abrir con macros y usando una rutina de abrir desde excel, como si fuera archivo de texto. Con espacios y listo.
La pregunta es como puedo acceder desde una macro al msdos, ¿para ejecutar dicho código y poder jalar ese archivo?
Gracias y saludos

1 Respuesta

Respuesta
1
Para realizar esto lo debes hacer por pasos:
1.- Primero creamos un fichero con las opciones de conexión del ftp:
Open "c:\1\opciones" for output as #1

Print #1, "open 10.11.11.11"
print #1, "df7784"
print #1, "contraseña"
print #1, "bin"
print #1, "get '/usr/dat/principal/datos.dat'"
print #1, "bye"

Close #1
2.- Ahora creamos un fichero .bat que lanzará el proceso ftp:
Open "c:\1\ftp.bat" for output as #1
print #1, "ftp -d -s:opciones"
print #1, "pause"

Close #1
3.- Ahora debemos ejecutar el fichero ftp.bat:
Shell "c:\1\ftp.bat", vbNormalFocus
Como ves, he supuesto creado en tu pc un directorio llamado "c:\1", pero puedes considerar cualquier otro directorio temporal.
Disculpa... No pude ejecutar el archivo. Lo hice tal como me lo dijiste, pero no me dejaba, no se si sea porque el archivo esta en c:windows/system32/  es un ejecutable que tiene extensión .exe
Como no pude modifique al siguiente código y me permitió llegar hasta precisamente la ventana de dos, pero ahí tuve que teclear manualmente open 10.11.11.1 y después teclear manualmente la clave y la contraseña, pero no se como hacer eso porque partiendo de que llegue hasta el sistema operativo ahora no se como continuar.
Open "c:\1\opciones" For Output As #1
Print #1, "open 10.11.11.1"
Print #1, "dd9925"
Print #1, "11111"
Print #1, "bin"
Print #1, "get '/usr/direc/sist/EJEM.DAT'"
Print #1, "bye"
Close #1
Rem 2.- Ahora creamos un fichero .bat que lanzará el proceso ftp:
Open "c:\1\ftp.bat" For Output As #1
Print #1, "ftp -d -s:opciones"
Print #1, "pause"
Close #1
Rem 3.- Ahora debemos ejecutar el fichero ftp.bat:
Shell "c:\WINDOWS\system32\ftp.exe", vbNormalFocus
Viendo ahora mi código, veo que me faltaba por incluir una cosa que te pongo en negrita:
1.- Primero creamos un fichero con las opciones de conexión del ftp:
Open "c:\1\opciones" for output as #1
print #1, "open 10.11.11.11"
print #1, "df7784"
print #1, "contraseña"
print #1, "bin"
print #1, "get '/usr/dat/principal/datos.dat' c:\1\datos.dat"
print #1, "bye"
Close #1
2.- Ahora creamos un fichero .bat que lanzará el proceso ftp:
Open "c:\1\ftp.bat" for output as #1
print #1, "ftp -d -s:opciones"
print #1, "pause"
Close #1
3.- Ahora debemos ejecutar el fichero ftp.bat:
Shell "c:\1\ftp.bat", vbNormalFocus

Además de esto, decirte que el archivo que tienes que ejecutar es c:\1\ftp.bat, poniendo lo que te pongo en el paso 3.
Sin embargo, según tu código, intentas ejecutar un fichero .exe, que no existe:

Shell "c:\WINDOWS\system32\ftp.exe", vbNormalFocus

Tienes que poner lo que te indicaba en el punto 3. Intentalo y me cuentas.
Disculpa la insistencia pero me marca el mismo error que muestro a continuación:
ftp -d -s:opciones no es un comando interno o externo, programa o archivo por lotes ejecutable
es decir no me permite. Aunque la verdad creo que con el codigo que me has pasado andamos muy cerca por eso mismo mi insistencia debido a que sí me sería de gran utilidad poder hacer esto desde excel.
Gracias y saludos
Vamos a hacer una pequeña prueba, a ver si también te da error. Crea manualmente en la carpeta c:\1 el fichero "ftp.bat". Edítalo, y le metes el siguiente texto:
Echo open 10.11.11.1 > opciones
Echo dd9925 >> opciones
Echo 11111 >> opciones
Echo bin >> opciones
echo get get '/usr/dat/principal/datos.dat' c:\1\datos.dat >> opciones
echo bye >> opciones
ftp -d -s:opciones
pause

Ejecutalo, y dime si te sigue dando el error.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas