Como hacer un Batch para copiar de un ftp, renombrar y ejecutar un .exe?

Estoy intentando hacer un batch para automatizar una tarea que realizo todos los días, que es copiar de un ftp a la maquina un archivo subido en el día, (debería buscar por fecha) re nombrarlo como "numero_temporal" ejecutar un exe, y luego renombrar el archivo con la fecha del dia. ¿Conviene hacer esto con un batch? No tengo mucha experiencia con esto.

1 respuesta

Respuesta

Yo creo que todo lo que se hace a diario y según un esquema predefinido vale la pena "automatizarlo", sea con un BAT o con cualquier otro medio y no solo por el "ahorro mental" que supone, que a lo mejor en ese sentido no es una gran idea hacer ahorros, sino porque, si está bien hecho, disminuye sustancialmente la probabilidad de errores frente a la realización manual. No veo ningún proceso en la tarea que comentas que no pueda incluirse en un BAT, de modo que creo que se puede probar. No me queda muy claro si el BAT debe esperar a que termine la ejecución del EXE. Si fuera así habría que decidir si procede una "espera" programada de un tiempo (segundos, minutos, etc.) prefijado o alguna forma de comprobar que la ejecución ha terminado. A continuación te pongo un "esquema" de un posible BAT que podría hacer lo que dices:

@echo off
 > ftp.txt echo [usuarioFTP]
>> ftp.txt echo [clave]
>> ftp.txt echo binary
>> ftp.txt echo cd [carpetaFTP]
>> ftp.txt echo get [archivoFTP]
>> ftp.txt echo quit
ftp -s:"ftp.txt" [servidorFTP] >> detalles.log
ren [archivoFTP] numero_temporal
[ejecutable]
ren [archivo_ant] [archivo_fin]%date:~6%%date:~3,2%%date:~0,2%

Las primeras instrucciones crean un archivo, de nombre ftp.txt, que recoge los parámetros de la conexión FTP (usuario, clave, tipo de transferencia, carpeta donde está el archivo que se quiere descargar y comando de descarga de ese archivo). Lo que figura entre corchetes (como [usuarioFTP]) debería sustituirse por los valores adecuados. Luego, ese archivo de parámetros se usa para hacer la conexión con el servidor FTP (otra vez habrá que sustituir [servidorFTP] por el valor adecuado. Se guarda un log de la conexión en "detalles.log" por si hubiera que revisar si ha habido errores. Luego se renombra el archivo recién obtenido que pasa a llamarse "numero_temporal". Luego se ejecuta el ejecutable (se habrá sustituido [ejecutable] por el path completo en el que se encuentre) y por último se renombra un archivo de nombre [archivo_ant] para que pase a llamarse [archivo_fin]aaaammdd (siendo aaaa el año, mm el mes y dd el día).

Supongo que harán falta ajustes, pero ese sería el "esquema de trabajo"

¡Gracias!  gracias por tomarte el tiempo para contestarme, con respecto a lo del tiempo de ejecución es cuestión de setearle un tiempo de espera aproximado al máximo que podría demorarse. 

Voy a darle una pulida al código que me pasaste y te comento como me fue.

Saludos y gracias

¿Has probado el bat según el esquema propuesto? Si tienes alguna dificultad o no funciona correctamente coméntalo que seguro que podemos arreglarlo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas