Carga automatizada de archivos a FTP y envío de archivos por correo electrónico. Cómo descargar archivos de FTP desde la línea de comandos de Windows Archivo por lotes para descargar archivos de FTP

El protocolo FTP es uno de los protocolos de red comunes utilizados por los usuarios de Internet. La inmensa mayoría de la gente utiliza varios clientes FTP para descargar cualquier cosa desde servidores FTP. Pero no mucha gente sabe que Windows permite conectarse a servidores FTP desde la línea de comandos.

En este consejo aprenderás cómo descargar archivos desde servidores FTP usando comandos simples de DOS.

Instrucción paso a paso:

Con el fin de descargar archivo desde FTP desde la línea de comando cadenas de windows , realicemos unos sencillos pasos:

  1. Abra el símbolo del sistema de Windows haciendo clic en Inicio - Ejecutar, escribiendo cmd y presionando Enter.
  2. Ejecute el siguiente comando: Usando este comando, nos conectaremos al servidor ftp de Microsoft.
  3. Ingrese el nombre de usuario anónimo. El servidor de esta conocida empresa permite conectarse a usuarios anónimos:
  4. Introduce tu correo electrónico como contraseña (puedes introducir una que no exista):
  5. ¡Felicitaciones por su inicio de sesión exitoso!
  6. Para ver qué archivos y directorios están disponibles en el servidor ftp, ingrese el comando dir:
  7. Como resultado, obtenemos una lista de archivos y directorios ubicados en el servidor ftp:
  8. Para ir al directorio requerido, use el comando cd:
  9. El mensaje "Comando 250 CWD exitoso" nos indicará que nos hemos movido exitosamente al directorio que necesitamos:
  10. Para descargar el archivo que necesitamos, ingresamos el comando get y el nombre del archivo descargado:
  11. Luego de recibir exitosamente el archivo, el sistema nos notificará:
  12. Para salir del servidor ftp y desconectarse de él, ejecute el comando bye:

Quizás muchos dirán que es mucho más conveniente descargar archivos utilizando administradores de descargas multifuncionales o clientes FTP, pero si es necesario (o como alternativa), puede utilizar simples Comandos de DOS eso te permitirá descargar archivos desde ftp sin coste adicional.

Para conectarse a un servidor FTP, no es necesario utilizar ningún programa de terceros; esto se puede hacer utilizando las funciones estándar de Windows. Para hacer esto, puede usar la línea de comando CMD. Pero para administrar el servidor a través de capacidades estándar. Sistema operativo, tendrás que estudiar los comandos disponibles, ya que CMD no tiene una interfaz visual. En este artículo, aprenderá los comandos FTP básicos y cómo ponerlos en práctica.

¿Por qué es mejor descargar el cliente que utilizar CMD?

Si la línea de comando CMD le permitiera realizar todas las operaciones disponibles en servidores FTP, entonces quizás no habría necesidad de clientes. Pero la realidad es que la línea CMD es muy limitada en cuanto a gestión de servidores. Por lo tanto, es mejor encontrar una oportunidad y descargar en su computadora una utilidad para administrar el servidor a través de FTP. Por ejemplo, descargue el programa cliente FileZilla a su PC; puede descargarlo de forma gratuita desde el sitio web oficial de los desarrolladores. No llevará mucho tiempo instalarlo. Y para conectarse al servidor, solo necesitará ingresar su nombre de usuario, contraseña y nombre de host en la línea requerida. Es mucho más difícil hacer esto a través de CMD.

La desventaja específica de la línea CMD es que ni siquiera podrás entrar en modo pasivo mientras estés en el servidor. Y sin este modo, no podrás intercambiar archivos con servidores FTP que funcionen a través de NAT.

De hecho, este es un defecto muy grande de CMD. Por lo tanto, acepte el hecho de que la línea de comandos de Windows sólo es adecuada para manipulaciones internas. sistema de archivos sin intercambio de datos. Aunque para quienes utilizan un servidor FTP para trabajos rutinarios y monótonos, la línea de comandos puede parecer muy conveniente. Pero es mejor probar tanto con el cliente como con CMD para sacar conclusiones.

¿Cuáles son los comandos para administrar FTP en el indicador de CMD?

Para comenzar, inicie la línea de comando. Puede hacerlo buscando en Inicio: busque el archivo cmd.exe y ábralo, después de lo cual se iniciará la línea.

Para conectarse al servidor, debe utilizar el comando ABRIR. Después de este comando, debes ingresar la dirección IP o el nombre de host con el que deseas configurar una conexión. Después de ingresar esta solicitud, podrá iniciar sesión en el servidor. Esto se puede hacer usando el comando USUARIO, que realiza una solicitud de autenticación a través del inicio de sesión ingresado. Luego debe ingresar el comando PASS, que significa contraseña. Cuando ingrese su contraseña y presione “Entrar”, estará autorizado en el servidor.

En general, la línea de comando sólo es adecuada para “navegar” por el servidor, mover archivos, etc. Primero, necesitará ver los archivos que están en el servidor. Para hacer esto, use el comando LS. Como no hay un cursor en la línea de comando, debe seleccionar un directorio o archivo usando comandos especiales. Utilice la línea CD o LCD para esto: la primera es necesaria para cambiar el objeto actual en la computadora remota y la segunda para la local, es decir, para su PC.

Aunque no podrá cargar sus archivos al servidor FTP a través de CMD, es posible descargar datos a su computadora. Para hacer esto, use el comando GET. Primero, escribe el comando GET con el nombre del archivo, y luego indica qué directorio de tu computadora es el actual, para que el servidor transfiera los datos a esa carpeta exacta.

Estos comandos se utilizan con mayor frecuencia. Es decir, la mayoría de los usuarios administran el servidor a través de CMD para poder descargar archivos rápidamente sin instalar primero el cliente. Pero puedes ir mucho más allá y usar otros comandos en el servidor usando el indicador CMD. Por ejemplo, puede agregar una señal de finalización de comando al servidor usando la cadena BELL.

Si desea finalizar la sesión y salir de la línea de comando y del servidor, ingrese BYE. Y para interrumpir la conexión de control solo en el servidor, para que permanezca dentro de la línea de comando, escriba CLOSE. En este caso, los archivos que descargues a tu PC desde el servidor continuarán descargándose y una vez completada la descarga, la sesión se cerrará por completo.

Usando CMD puedes manipular fácilmente directorios en el servidor. Por ejemplo, para eliminar el directorio especificado, utilice el comando DELETE. Para que aparezca en la pantalla una lista de archivos en una carpeta específica, ingrese DIR y la ruta al directorio. Si desea eliminar no una carpeta o archivo, sino varios a la vez, utilice el comando MDELETE, es decir, eliminación múltiple. De manera similar, el prefijo "m" se puede utilizar para otros comandos, de modo que se puedan combinar varias acciones en una. Entonces, para mostrar una lista de archivos en varios directorios a la vez, escriba MDIR y para descargar lotes de datos del servidor, use MGET. Pero no confunda el comando múltiple con un solo MKDIR: es necesario para generar un directorio en el servidor.

Existe la posibilidad de que su servidor FTP funcione sin tecnología NAT, por lo que no es necesario el modo de cliente pasivo. En este caso, podrá descargar ciertos archivos al anfitrión. Utilice el comando MPUT para cargar varios archivos y PUT si solo desea cargar uno.

Otro comando popular que probablemente le resulte útil es RENOMBRAR. Necesita un comando para cambiar el nombre de los archivos. Será útil para quienes utilizan el servidor como almacenamiento de datos del sitio. También necesitará el comando PWD, que determina la carpeta actual en el servidor FTP remoto, no en su computadora, como lo hace la línea LCD.

Los siguientes comandos son una lista parcial de funciones que puede utilizar en FTP. También hay otros equipos. Y puede obtener información sobre ellos directamente en la línea de comando si ingresa la consulta AYUDA. Después de esto, aparecerá un directorio con todos los comandos CMD disponibles que se pueden usar en FTP. Solo ten en cuenta que en este momento debes estar conectado al servidor, de lo contrario Windows te dará un directorio diferente. Y si desea solicitar ayuda al propio servidor, escriba REMOTEHELP.

Por supuesto, administrar un servidor con comandos es algo de la edad de piedra. Por tanto, es mejor no perder el tiempo, descargar un cliente FTP normal a tu ordenador y utilizar el servidor al máximo, y no parcialmente. ¡Pero practicar en la línea de comando CMD nunca hace daño a nadie!

Necesitaba enviar archivos de informes cada hora a servidor FTP y también duplicar el envío de estos archivos por correo a varios destinatarios. Después de investigar un poco, me decidí por la utilidad incorporada ftp.exe (C:\Windows\System32\ftp.exe) y el viejo blat. Vamos a empezar. Necesitamos cargar todos los archivos XML desde el directorio %dir%\file_export (donde %dir% es la ruta a nuestra carpeta) al servidor ftp.server.com cada hora.
Nueva versión en Python

Configurar la carga de archivos a FTP

Cree un archivo de comando para ftp.exe
Nosotros creamos Documento de texto(por ejemplo ftpcomm.txt) escribimos en él:
acceso
contraseña
CD EN
binario

adiós
Dónde:
acceso- inicio de sesión del servidor ftp
contraseña- contraseña para el servidor ftp
CD EN- vaya a la carpeta deseada
binario- configurar el método binario para enviar archivos. En este caso, el archivo no se vuelve a codificar durante la transmisión y se graba sin cambios. Esto es lo más manera confiable transferencia de archivos.
mput C:\%dir%\file_export\*.xml- copiar uno o más archivos locales a una computadora remota especificando el directorio
adiós- fin de la sesión FTP y salida del servidor FTP
Crea el archivo export.bat
Escribimos en él:

Dónde:
C:\WINDOWS\system32\ftp.exe- Ruta a la utilidad ftp.exe
-s:c:\%dir%\ftpcomm.tx t: establece la ruta a un archivo de texto que contiene comandos FTP, los comandos se iniciarán automáticamente después de que se inicie FTP.
-i- deshabilite el modo interactivo al transferir varios archivos.
ftp.servidor.com- introduzca la dirección de nuestro servidor FTP.
Comprobamos el trabajo ejecutando export.bat. Vemos que los archivos se han subido al servidor FTP. Pero aquí surge un problema: si necesitamos subir archivos una vez cada hora, ¿cómo podemos evitar que se vuelvan a enviar archivos? La solución es trivial:
Agregue al archivo export.bat:
cd /d C:\%dir%\file_export\
del *.xml
Dónde:
cd /d C:\%dir%\file_export\- vaya al directorio en el que están almacenados los archivos XML.
del *.xml- eliminar todos los archivos XML.

Configurar el envío de archivos a correo electrónico

Para enviar archivos por correo electrónico, utilizamos la utilidad blat (http://www.blat.net/). Descargue y descomprima en cualquier directorio, en nuestro caso es c:\%dir\blat/
Instalación bla. Llame a la línea de comando. En la línea de comando, vaya a nuestra carpeta:
cd c:\%dir%\blat/
Iniciamos la instalación de blat (registramos el perfil de blat en el registro, los datos se escriben en el registro sistemas windows al hilo: .
blat.exe -instalar smtp.yandex.ru Nombre_buzó[email protected] 3 25 perfil Nombre_buzó[email protected] Su_contraseña
Dónde:
smtp.yandex.ru- Nombre servidor de correo, a través del cual se enviarán los correos electrónicos.
Nombre del buzó[email protected]- nombre del remitente, que se mostrará en el campo.
3 - el número de intentos de reenviar la carta si falla la conexión con el servidor.
25 - Número de puerto del servidor SMTP.
perfil- nombre de perfil.
Nombre del buzó[email protected]- nombre de usuario que se utilizará al conectarse al servidor SMTP.
Tu contraseña- contraseña utilizada al conectarse al servidor SMTP, es decir contraseña del buzón.

Agregar envío de correos electrónicos a export.bat

En el archivo export.bat después de la línea
C:\WINDOWS\system32\ftp.exe -s:c:\%dir%\ftpcomm.txt -i ftp.server.com
Nosotros escribimos:

Dónde:
-p perfil– nombre de perfil blat (Especificado durante la instalación)
-juego de caracteres windows-1251(Seleccione codificación de Windows)
-a [correo electrónico protegido] – dirección del destinatario de la carta
-asunto "Exportación de archivos"- Asunto de la carta
-cuerpo "Exportación automática"- Cuerpo de la carta
-adjuntar c:\%dir%\file_export\*.xml– archivos o archivo que necesita ser enviado
Si necesita enviar cartas a varios buzones, escriba esta línea varias veces indicando los buzones del destinatario:
blat.exe -p perfil -charset windows-1251 -to [correo electrónico protegido]-subject "Exportación de archivos" -body "Exportación automática" -attach c:\%dir%\file_export\*.xml
blat.exe -p perfil -charset windows-1251 -to [correo electrónico protegido]-subject "Exportación de archivos" -body "Exportación automática" -attach c:\%dir%\file_export\*.xml
blat.exe -p perfil -charset windows-1251 -to [correo electrónico protegido]-subject "Exportación de archivos" -body "Exportación automática" -attach c:\%dir%\file_export\*.xml

Archivo export.bat final

Como resultado, obtenemos un archivo export.bat en el que tenemos las líneas:
C:\WINDOWS\system32\ftp.exe -s:c:\%dir%\ftpcomm.txt -i ftp.server.com
blat.exe -p perfil -charset windows-1251 -to [correo electrónico protegido]-subject "Exportación de archivos" -body "Exportación automática" -attach c:\%dir%\file_export\*.xml
cd /d C:\%dir%\file_export\
del *.xml
En la primera línea enviamos los archivos al servidor FTP, en la segunda enviamos los archivos por correo electrónico, luego vamos al directorio donde están almacenados los archivos y los eliminamos.

Envío de archivos según un horario

Permítanme recordarles que necesitamos enviar archivos cada hora, para ello creamos una tarea en el Programador de Windows. Donde indicamos que necesitamos ejecutar export.bat una vez por hora.

Línea de fondo

Como resultado tenemos sistema automático Envío de archivos cada hora al servidor FTP y correo electrónico.

A menudo es necesario automatizar los procesos de descarga, carga y eliminación de archivos de un servidor FTP. Por ejemplo, cuando se trabaja con bases de datos distribuidas 1C o para guardar copias de seguridad. Pero no todo el mundo sabe que estos procedimientos se pueden realizar desde la línea de comandos sin recurrir a recursos adicionales. software, eso es herramientas de windows. A continuación proporcionaré la sintaxis de comandos para trabajar con FTP, así como ejemplos de archivos bat para estas operaciones.

1.comando ftp

Para intercambiar archivos con un servidor FTP, utilice el comando ftp, aquí está su sintaxis:

ftp[-v] [-d] [-i] [-n] [-g] [-s:nombre de archivo] [-a] [-A] [-x:búfer de envío]
[-r:recvbuffer] [-b:asyncbuffers] [-w:tamaño de ventana] [nodo]

-v Deshabilite la visualización de respuestas de un servidor remoto.
-norte Deshabilite el inicio de sesión automático en la conexión inicial.
-i Deshabilitar solicitudes interactivas al enviar múltiples
archivos.
-d Habilite el modo de depuración.
-gramo Deshabilite la globalización de nombres de archivos (consulte el comando GLOB).
-s:nombre de archivo Ejercicio Archivo de texto, que contiene comandos FTP que
se ejecutará automáticamente cuando inicie FTP.
-a Uso interfaz local para unir la conexión.
-A Inicio de sesión anónimo al servicio.
-x: enviar calcetín Anule el tamaño de búfer predeterminado SO_SNDBUF (8192).
-r:recv calcetín Anule el tamaño de búfer predeterminado SO_RCVBUF (8192).
-b: recuento asíncrono Anulación del tamaño del contador asíncrono predeterminado (3)
-w: tamaño de ventana Anule el tamaño del búfer de transmisión predeterminado (65535).
nodo Especificando el nombre o la dirección IP del nodo remoto,
al que desea conectarse.

Como puede ver, no existen operadores para conectarse al servidor y trabajar con archivos. El caso es que este comando sólo inicia la sesión ftp:

!
Transición temporal al caparazón.

adjuntar
Agregando al archivo.

ascii
Configuración del modo de transferencia para archivos en formato ascii.

campana
Señal sonora cuando se completa el comando.

binario
Configure el modo de transferencia de archivos binarios.

adiós
Finalice la sesión ftp y cierre sesión.

CD <удаленный_каталог>
Cambiar el directorio de trabajo en la computadora remota donde:
<удаленный_каталог> — el nombre del directorio que funcionará.

cerca
Finalizando la sesión ftp.

depurar
Cambiar el modo de depuración.

borrar <удаленный_файл>
Eliminar un archivo en una computadora remota donde:
<удаленный_файл> — nombre del archivo que se va a eliminar.

dirección [ <удаленный_каталог> ] [<локальный_файл> ]
Muestra el contenido del directorio de la computadora remota, donde:
<удаленный_каталог>
<локальный_файл>

desconectar
Finalizando la sesión ftp.

conseguir <удаленный_файл> [<локальный_файл> ]
Obteniendo un archivo donde:
<удаленный_файл>
<локальный_файл> — nombre del archivo en la computadora local .

globo
Cambiar la extensión de metacaracteres de los nombres de archivos locales.

picadillo
Cambia la salida "#" para cada bloque de datos transferido.

ayuda [ <команда> ]
Muestra información de ayuda para el comando ftp, donde:
<команда> — El comando cuya descripción se mostrará; si no se especifica, se generarán todos los comandos.

pantalla LCD [ <локальный_каталог> ]
Cambiar el directorio local de la computadora en funcionamiento, donde:
<локальный_каталог> — El nombre del nuevo directorio local; si no se especifica, se utilizará el nombre del directorio actual.

literal <команда_1> … <команда_n>

<команда_n> — comandos para enviar;

ls [<directorio_remoto>] [<archivo_local>]
Muestra el contenido abreviado del directorio de la computadora remota, donde:
<удаленный_каталог> — directorio cuyo contenido se mostrará; si no se especifica, se utiliza el directorio actual;
<локальный_файл> — especifica un archivo local para guardar en la lista; si no se especifica, la lista se muestra en la pantalla.

meliminar<archivo_remoto_1> … <archivo_remoto_n>
Eliminar varios archivos en una computadora remota donde:
<удаленный_файл_n> — nombres de archivos para eliminar.

mdir<directorio_remoto_1> … <directorio_remoto_n> <archivo local>
Imprime el contenido de varios directorios en una computadora remota, donde:
<удаленный_каталог_n> — el directorio cuyo contenido se mostrará;
<локальный_файл> — especifica un archivo local para guardar en la lista; si no se especifica, la lista se muestra en la pantalla.

obtener <удаленный_файл_1> <удаленный_файл_n>
Recibir múltiples archivos donde:
<удаленный_файл_n> — archivo remoto para copiar.

mkdir <удаленный_каталог>
Cree un directorio en la computadora remota donde:
<удаленный_каталог> — nombre del directorio remoto a crear.

mls<directorio_remoto_1> ... <directorio_remoto_n> <archivo_local>
Imprima el contenido abreviado de varios directorios en una computadora remota, donde:
<удаленный_каталог_n> — directorio cuyo contenido se mostrará; si no se especifica, se utiliza el directorio actual;
<локальный_файл> — especifica un archivo local para guardar en la lista.

mputar <локальный_файл_1> … <локальный_файл_n>
Envío de múltiples archivos donde:
<локальный_файл_n> — el nombre de los archivos locales que se copiarán.

inmediato
Alternar información sobre herramientas interactiva para comandos compuestos.

poner <локальный_файл> [<удаленный_файл> ]
Enviando un archivo, donde:
<archivo local>
<удаленный_файл>

persona con discapacidad
Muestra el directorio de trabajo de la computadora remota.

abandonar
Finalice la sesión ftp y salga a la línea de comando.

cita <команда>
Envíe un comando ftp arbitrario, donde:
<команда> — comando para enviar.

recv <удаленный_файл> [<локальный_файл> ]
Recuperar un archivo usando la configuración de tipo de archivo actual, donde:
<удаленный_файл> — archivo remoto para copiar;
<archivo local> — nombre del archivo en la computadora local .

ayuda remota [ <команда> ]
Obtener información de ayuda sobre comandos en un sistema remoto, donde:
<equipo> — comando del sistema remoto; si no se especifica, se muestra una lista de todos los comandos.

rebautizar <имя_файла> <новое_имя_файла>
Cambiar el nombre archivo remoto, Dónde:
<Nombre del archivo> — nombre del archivo a cambiar;
<nuevo_nombre_archivo> — nuevo nombre de archivo.

rmdir <имя_каталога>
Eliminar un directorio en una computadora remota donde:
<nombre del directorio> — nombre del directorio a eliminar.

enviar <локальный_файл> [<удаленный_файл> ]
Copie un solo archivo usando la configuración de tipo de archivo actual, donde:
<archivo local> — nombre del archivo local a copiar;
<удаленный_файл> — nombre del archivo en la computadora remota.

estado
Muestra el estado actual de la conexión ftp.

rastro
Alternar seguimiento de paquetes.

tipo [ <имя_типа> ]
Configurar el tipo de transferencia de archivos, donde:
<escribe un nombre> — tipo de transferencia de archivos; si no se especifica, se mostrará el tipo de transferencia de archivos actual.

usuario <имя_пользователя> [<пароль> ] [<учетная_запись> ]
Envío de información para conectarse computadora remota, Dónde:
<Nombre de usuario> — nombre de usuario para conectarse a la computadora remota;
<contraseña> — contraseña para el nombre de usuario especificado, si no se especifica pero es necesaria para la conexión, el comando ftp la solicitará al usuario;
<Cuenta> Cuenta para conectarse a una computadora remota, si no se especifica pero es necesario para la conexión, el comando ftp se lo solicitará al usuario;

verboso
Cambiar el modo de salida del mensaje.


Veamos un pequeño ejemplo.

Primero, escribamos un "archivo de cuerpo" que se cargará en el servidor. sitio web archivo archivo_datos.dat de " C:\ejemplo". El algoritmo para el archivo bat será el siguiente:

  • Cree un archivo transport.txt con una secuencia de declaraciones ftp;
  • Ejecutamos el comando ftp, especificando como parámetros el archivo creado;
  • Eliminar transporte.txt.

En este ejemplo, el nombre del archivo y el directorio están codificados en el archivo. Esto no siempre es conveniente. Modifiquemos el archivo bat para que reciba los datos que se cargarán como parámetros y también colocaremos todos los valores modificables en las variables del archivo. Obtenemos el siguiente código ():

En consecuencia, para copiar el archivo. archivo_datos.dat de " C:\ejemplo"al servidor FTP en " Temperatura\Copia de seguridad", deberá ejecutar este archivo por lotes, especificando el nombre del archivo y los directorios local y remoto como parámetros.

De manera similar, puede escribir archivos bat para y en un servidor FTP, así como un archivo ejecutable con un conjunto arbitrario de instrucciones.

¿Te ayudó este artículo?

Publicaciones sobre el tema.