Atualmente estou FTP'ing
arquivando em uma caixa unix de um windows
servidor. Quero alterar a seção a seguir do script e migrar o processo FTP para 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
Eu PSFTP.EXE
instalei no meu diretório do Windows. Com isso posso enviar os arquivos com SFTP?
Como posso substituir a linha ftp -n -s:ftpcmd.dat %host%
por SFTP. Eu entendo que você pode fazer algo assim....
CALL PSFTP.EXE [email protected] ....
Se alguém conhece, por favor, pode me ajudar a concluí-lo. que argumentos eu daria. Os detalhes de usuário, pw, remotedir e host são mantidos em um arquivo de propriedades. Estou querendo usar chaves em vez de senha. Você pode passar o argumento ftpcmd.dat existente para o psftp?
Responder1
Você também pode usar o WinSCP. Ele suporta SFTP e scripts.
Veja oguia para converter script FTP do Windows em script WinSCP SFTP.
O script ficará assim:
open sftp://%user%:%password%@%host%
put -transfer=binary %filetobeuploaded% %filepath%%File%
exit
Você pode executar o script como (se salvo script.txt
):
winscp.com /script=script.txt
Observe que (ao contrário do ftp.exe
), as variáveis de ambiente também são resolvidas no script WinSCP.
Se você quiser usar um arquivo de chave privada, use:
open sftp://%user%@%host% -privatekey=path\key.ppk
(Sou o autor do WinSCP)