Automatizar cargas y descargas SFTP con WinSCP

Imágenes WinSCP.

Fecha de publicación:

Actualizado:


Artículos técnicos > Automatizar cargas y descargas SFTP con WinSCP

Estado 2026 y uso seguro

Conclusión: utilice WinSCP.com con un archivo de script, fije la huella digital de la clave de host SSH del servidor, mantenga secretos fuera de los argumentos fuente y de proceso, habilite el registro y falle el trabajo cuando WinSCP devuelva un código de salida distinto de cero.

Qué aprenderás

  • Cómo encajan las operaciones programadas open, get y put en un flujo de trabajo por lotes.
  • Cómo la verificación de la clave del host evita que un trabajo desatendido confíe en el servidor equivocado.
  • Cómo hacer que las transferencias sean repetibles con registros, rutas explícitas y manejo de errores.

Para quién: administradores de Windows que automatizan la transferencia de archivos a un punto final SFTP conocido.

Situación en 2026: El script original a continuación contiene credenciales ilustrativas en texto sin formato y acepta un host de forma interactiva. Consérvelo únicamente como material de aprendizaje histórico; no implemente esos secretos ni eluda las comprobaciones de claves de host. Prefiere claves SSH o un almacén secreto aprobado y prueba el comportamiento de recuperación.

Nota de seguridad: Los comandos y ejemplos de configuración del artículo original no se han vuelto a ejecutar en un entorno de producción actual. Verifique las versiones compatibles, las copias de seguridad, los controles de acceso y los pasos de reversión en un entorno de prueba independiente antes de aplicarlos.

Fuentes primarias oficiales

Resumen.

Crear una herramienta de descarga y carga automática de archivos mediante el comando WinSCP. Ejecute los comandos proporcionados por WinSCP utilizando el símbolo del sistema. No es de extrañar que WinSCP proporcione comandos. Normalmente se utiliza 'WinSCP.exe', pero también está disponible 'WinSCP.com'. Casi nunca verá la carpeta "C:\NArchivos de Programa (x86)\NWinSCP" en el destino del acceso directo, ya que normalmente se abre básicamente desde el acceso directo, pero si mira el destino del acceso directo, "WinSCP.com" también debería estar almacenado allí. Aquí es donde se crea la herramienta.

Índice de contenidos

  1. ¿Qué es el comando WinSCP?
  2. Herramienta de descarga automática
  3. Herramienta de carga automática
  4. Otros comandos que pueden utilizarse con frecuencia
  5. Resumen

1. ¿Qué es la línea de comandos de WinSCP?

La línea de comandos de WinSCP permite convertir en scripts las transferencias que suelen hacerse desde la interfaz gráfica. Es útil para automatizar cargas, descargas y sesiones repetitivas.

1-1. Lo que puedes hacer.

Puedes descargar y subir archivos, crear carpetas, llamar a comandos del shell y muchas otras cosas.

Los comandos que se pueden utilizar con frecuencia son.

open: Se utiliza para la conexión.

get: Se utiliza para descargar archivos.

put: Se utiliza para cargar archivos.

exit: Cierra WinSCP.

1-2. Lo que no puedes hacer.

Las cargas y descargas básicas son directas. Los filtros más complejos pueden requerir máscaras de archivo, lógica de script o un comando del shell remoto.

Para filtrar por fecha de modificación hay que consultar la sintaxis de máscaras de la versión de WinSCP utilizada.

call ejecuta comandos del shell remoto en las sesiones compatibles. Los comandos disponibles, el escapado y los permisos dependen del servidor.

2. Herramienta de descarga automática

La primera herramienta descarga automáticamente los registros de un servidor Linux.

2-1. Creación

Cree una herramienta con las siguientes condiciones.

/ Windows 10 como entorno de ejecución.

/ El servidor que se va a adquirir es Linux.

/ Dirección IP 192.168.50.10.

En primer lugar, cree un archivo bat como punto de partida para la activación.

file_get.bat


@setlocal enabledelayedexpansion
@set time2=%time: =0%
@set MKDIR_NAME=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
@set FOLDER=%~dp0%MKDIR_NAME%
@mkdir %FOLDER%
@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0ftp.txt /parameter %FOLDER% 

Salvo la última línea, el resto del proceso es un comando de Windows. Contenido.

@setlocal enabledelayedexpansion

Configuración de las variables de entorno con retraso. Brevemente, esta descripción evita que se establezca un valor a una variable que puede no reflejarse.

@set time2=%time: =0%
@set MKDIR_NAME=%date:~0,4%%date:~5,2%%date:~8,2%%time2:~0,2%%time2:~3,2%%time2:~6,2%
@set FOLDER=%~dp0%MKDIR_NAME%

El proceso de obtener aaaammddhmmss de la hora actual y finalmente ponerlo en la variable FOLDER.

@mkdir %FOLDER%

Cree una carpeta 'yyyymmddhmmss' directamente bajo la carpeta donde se ejecutó el lote.

@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0ftp.txt /parameter %FOLDER% 

WinSCP.com (comando WinSCP). La ejecución ejecuta los comandos enumerados en "ftp.txt" en la misma carpeta donde se almacena el archivo por lotes. Pase la ruta de la carpeta que acaba de crear como argumento.

Esto completa la creación del archivo de llamadas. El comando WinSCP se describe entonces en "ftp.txt".

ftp.txt


option batch on
option transfer binary
open test:testpassword@192.168.50.10
get /var/log/httpd/access_log %1%\
close
exit

Contenido.

option batch on

Para los procesos que requieren consulta, el sistema asume automáticamente que se ha seleccionado "No" y ejecuta automáticamente el proceso. Si incluyes esto, se sobrescribirá automáticamente cualquier nombre de archivo duplicado. (Puedes crear una carpeta "yyyymmddhmmss" y poner los archivos ahí, para que no haya nombres de archivos duplicados.)

option transfer binary

La configuración es para transferir los datos en modo binario.

open test:testpassword@192.168.50.10

'nombre de usuario:palabra de paso@dirección IP'. Conéctese a la dirección IP "192.168.50.10".

get /var/log/httpd/access_log %1%\

Guarde '/var/log/httpd/access_log' en la carpeta 'yyyymmddhhmmss'.('%1%' es el argumento pasado en file_get.bat)

El «*» es un comodín admitido por WinSCP, no una expresión regular. Por ejemplo, «/var/log/httpd/*» coincide con los archivos de ese directorio.

close
exit

close cierra la sesión actual y exit termina WinSCP.

Esto completa la creación de la herramienta.

2-2. Verificar la clave del host antes de la primera conexión

Antes de automatizar la conexión, hay que comprobar la huella de la clave SSH del servidor mediante un canal de confianza.

WinSCP muestra la huella de la clave del host en la primera conexión. Solo debe aceptarse si coincide con la proporcionada por el administrador; pulsar «Sí» por sí solo no demuestra que la conexión sea segura. En automatizaciones conviene especificar la huella esperada y detener el proceso si cambia.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Se le pide una respuesta, introduzca "y".
close
exit
exit

La cuenta, la contraseña y la dirección del ejemplo son marcadores de posición. Un script de producción no debe guardar contraseñas en la línea de comandos; es preferible usar una sesión protegida o autenticación por clave.

Después de verificar la huella y guardar la conexión de forma segura, puede ejecutarse el archivo por lotes.

2-3. aplicación

Por último, ha llegado el momento de aplicarlo. Haga doble clic en "file_get.bat".

Éxito si se crea la carpeta "yyyymmddhhmmss" y los registros se almacenan en la carpeta.

3. Herramienta de carga automática

El siguiente paso es crear una herramienta para colocar los archivos en un servidor Linux. La construcción básica será la misma que la de la herramienta de descarga.

3-1. Creación

Cree una herramienta con las siguientes condiciones.

/ Windows 10 como entorno de ejecución.

/ El servidor de destino es Linux.

/ Dirección IP 192.168.50.10.

En primer lugar, cree un archivo bat como punto de partida para la activación.

file_put.bat


@setlocal enabledelayedexpansion
@set FOLDER_NAME="put_files\*"
@set FOLDER=%~dp0%FOLDER_NAME%
@set PUT_FOLDER="/tmp/"
@"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script=%~dp0put_ftp.txt /parameter %FOLDER% %PUT_FOLDER%

Como se ha explicado en la herramienta de descarga automática, se omite una pequeña explicación, pero el proceso es almacenar los archivos en la carpeta 'put_files' en la misma carpeta donde se ejecuta el archivo batch en '/tmp/'. El proceso real de almacenamiento se describe en "put_ftp.txt".

put_ftp.txt


option batch on
option transfer binary
open test:testpassword@192.168.50.10
put %1% %2%
close
exit

El comando "put %1%\ %2%" sube los archivos según el "archivo de origen" y la "carpeta de destino" pasados como argumentos, aunque se omite una pequeña explicación porque esto también se explica en la herramienta de descarga automática.

3-2. preparación de la aplicación

Al igual que con la herramienta de descarga automática, las huellas digitales se comprueban previamente antes de su ejecución.(No es necesario si la herramienta de descarga automática se ha ejecutado una vez.)

Ejecute el siguiente comando en la línea de comandos.

"C:\Program Files (x86)\WinSCP\WinSCP.com"
open test:testpassword@192.168.50.10 ⇒Se le pide una respuesta, introduzca "y".
close
exit
exit

'test:testpassword@192.168.50.10' debe ser sustituido por 'nombre de usuario:contraseña@dirección IP'.

Así se completan los preparativos preliminares.

3-3. aplicación

Por último, ha llegado el momento de aplicarlo. Haga doble clic en "file_put.bat".

Éxito si los archivos almacenados en 'put_files' se transfieren a la carpeta '/tmp/'.

4. Otros comandos que pueden utilizarse con frecuencia

Los comandos de WinSCP siguientes también resultan útiles en transferencias automatizadas.

4-1. autenticación de claves

Anteriormente, usted se conectó con la autenticación de la contraseña de acuerdo con la siguiente descripción.

open test:testpassword@192.168.50.10

'abrir nombre de usuario:contraseña@dirección IP'. Para la autenticación de claves, se aplica lo siguiente.

open test@192.168.50.10 -privatekey=id_rsa.ppk

La opción '-privatekey=id_rsa.ppk' es la ruta de acceso a la clave. Como aparece como una ruta relativa, se supone que la clave (id_rsa.ppk) está también en la carpeta donde se encuentra el archivo ejecutable (archivo bat). Por ejemplo, si la clave se encuentra directamente en la unidad C, escriba "-privatekey=C:\id_rsa.ppk".

4-2. Llamada a la cáscara

Para invocar el shell mediante el comando WinSCP, escriba lo siguiente.

option batch on
option transfer binary
open test:testpassword@192.168.50.10
call sh /tmp/test.sh
close
exit

'test.sh' es ejecutado por 'call sh /tmp/test.sh'. También es posible pasar argumentos. Al pasar los argumentos, escríbalos como "call sh /tmp/test.sh param1".

5. resumen

Se ha descrito el comando WinSCP.

Si normalmente utilizas la GUI de WinSCP para registrar y subir archivos a diario, puedes automatizarlo creando las herramientas descritas en este artículo. Puede ser una tarea menor, pero puede llevar mucho tiempo, excepto si se hace todos los días. Le animamos a crear herramientas para mejorar la eficiencia.