Actualmente estoy FTP'ing
archivando en una caja Unix desde un windows
servidor. Quiero cambiar la siguiente sección del script y migrar el proceso ftp a sftp
.
@echo off
echo user %user%> ftpcmd.dat
echo %password%>> ftpcmd.dat
echo bin>> ftpcmd.dat
echo put %filetobeuploaded% %filepath%%File%>> ftpcmd.dat
echo quit>> ftpcmd.dat
ftp -n -s:ftpcmd.dat %host%
del ftpcmd.dat
:END
Lo he PSFTP.EXE
instalado en mi directorio de Windows. ¿Con eso puedo enviar los archivos con SFTP?
¿Cómo puedo reemplazar la línea ftp -n -s:ftpcmd.dat %host%
para que sea SFTP? Entiendo que puedes hacer algo como esto....
CALL PSFTP.EXE [email protected] ....
Si alguien lo conoce, ¿podría ayudarme a completarlo? ¿Qué argumentos daría? Los detalles de usuario, contraseña, directorio remoto y host se guardan en un archivo de propiedades. Estoy buscando usar claves en lugar de contraseña. ¿Puedes pasar el argumento ftpcmd.dat existente a psftp?
Respuesta1
También puedes utilizar WinSCP. Es compatible tanto con SFTP como con secuencias de comandos.
Ver elguía para convertir el script FTP de Windows al script SFTP de WinSCP.
El guión se verá así:
open sftp://%user%:%password%@%host%
put -transfer=binary %filetobeuploaded% %filepath%%File%
exit
Puede ejecutar el script como (si se guarda en script.txt
):
winscp.com /script=script.txt
Tenga en cuenta que (a diferencia de ftp.exe
), las variables de entorno también se resuelven en el script WinSCP.
Si desea utilizar un archivo de clave privada, utilice:
open sftp://%user%@%host% -privatekey=path\key.ppk
(Soy el autor de WinSCP)