Eu não acho que exista uma maneira confiável de fazer isso com o Windows ftp.exe
.
Não reportará o resultado via código de saída. Ele sempre retorna 0, mesmo no erro.
Tudo o que você pode fazer é analisar a saída ftp.exe
. Mas essa é uma abordagem bastante suja. Note que o ftp.exe
não separa os erros em uma saída de erro, gera tudo para uma saída padrão.
É melhor você usar um cliente FTP de terceiros.
Por exemplo, com script WinSCP , você pode usar:
@echo off
winscp.com /log=ftp.log /command ^
"open ftp://user:[email protected]/" ^
"cd inbound/development/extracts/yxd0" ^
"put %EncryptFilePath%" ^
"exit" && (
echo FTP upload is successful
) || (
echo FTP upload is failed
exit
)
Em que ftp://user:[email protected]/
seria ftp://Dev:[email protected]/
Veja também Convertendo o script FTP do Windows para o script FTP do WinSCP .
(eu sou o autor do WinSCP)