Windows ha incluido archivos por lotes desde antes de que existiera … ¡los archivos por lotes son realmente antiguos! Viejo o no, todavía me encuentro creando archivos por lotes con frecuencia para ayudarme a automatizar tareas comunes. Una tarea común es cargar archivos a un servidor FTP remoto. Esta es la forma en que lo resolví.
Primero, necesitará crear un archivo llamado fileup.bat en su directorio de Windows, o al menos en un directorio incluido en su ruta. Puede utilizar el comando «ruta» para ver cuál es la ruta actual.
En el archivo por lotes, querrá pegar lo siguiente:
@ Eco apagado
echo usuario MyUserName> ftpcmd.dat
echo MyPassword >> ftpcmd.dat
bandeja de eco >> ftpcmd.dat
echo put% 1 >> ftpcmd.dat
echo salir >> ftpcmd.dat
ftp -n -s: ftpcmd.dat NAME SERVER.COM
del ftpcmd.dat
Deberá reemplazar MyUserName, MyPassword y SERVERNAME.COM con los valores correctos para su servidor ftp. Lo que hace este archivo por lotes es crear un script de la utilidad ftp usando la opción -s para la utilidad de línea de comandos.
El archivo por lotes utiliza el comando «echo» para enviar texto al servidor ftp como si lo hubiera escrito. En el medio del archivo puede agregar comandos adicionales, posiblemente un comando de cambio de directorio:
echo cd /ruta/>>ftpcmd.dat
Para llamar a este archivo por lotes, llamará al archivo por lotes usando el nombre fileup.bat que le dimos y pasará el nombre de un archivo como parámetro. Tampoco es necesario que escriba la parte .bat del nombre del archivo para que esto funcione.
Ejemplo:
> fileup FileToUpload.zip
Conectado a ftp.myserver.com.
220 Servicio FTP de Microsoft
ftp> usuario mi nombre de usuario
331 Se requiere contraseña para mi nombre de usuario.
230 Usuario mi nombre de usuario registrado.
ftp> bac
200 Tipo establecido en I.
ftp> poner FileToUpload.zip
200 comando PORT exitoso.
150 Apertura de la conexión de datos en modo BINARIO para FileToUpload.zip
226 Transferencia completada.
ftp: 106 bytes enviados en 0.01 segundos 7.07 KB / s.
ftp> salir
Y es todo. Ahora su archivo debería estar en el servidor remoto.