
Necesito crear un script por lotes para copiar archivos desde la PC al servidor FTP. Después de copiar, elimine todos los archivos del origen. Y en el directorio de destino sobrescriba todos los archivos existentes.
Encontré muchas soluciones, pero no estoy seguro de cuál es la mejor para mí. Por ejemplo XCOPY
o ROBOCOPY
método clásico con comandos como ftp
, cd
, copy
, mget
, ...
ROBOCOPY
Parece la mejor opción, pero creo que no es compatible con FTP. XCOPY
es un método más antiguo, ...
Después de todo, será una tarea programada regularmente...
Gracias por tus consejos.
Respuesta1
robocopy
y xcopy
trabajar solo con archivos locales.
Con ftp
, puede cargar y luego eliminar archivos fuente con del
el comando local.
ftp -s:upload.txt
del *.*
Pero es difícil implementar esto de manera que solo se eliminen los archivos que realmente se cargaron exitosamente. El archivo por lotes anterior eliminará todos los archivos, sin importar si algunos de ellos no se pudieron cargar o si algunos de ellos se crearon entre ftp
y del
.
Pero la mayoría de los clientes de línea de comandos FTP de terceros pueden hacerlo fácilmente. Por ejemplo, conCliente FTP WinSCP, simplemente puede usar el siguiente archivo por lotes (usandoput
dominiocon el -delete
interruptor):
winscp.com /ini=nul /log=upload.log /command ^
"open ftp://username:[email protected]/" ^
"put -delete C:\local\source\path\* /remote/target/path/" ^
"exit"
Respecto a la programación: VerGuía WinSCP para programar transferencias al servidor FTP.
(Soy el autor de WinSCP)