Vérifiez si le téléchargement FTP est réussi ou si vous n'utilisez pas le lot?

Je cours le code ci-dessous dans mon ftpUpload.bat . Si le fichier n'est pas téléchargé sur le serveur FTP, il devrait imprimer "Le téléchargement du FTP est échoué" mais je reçois "le téléchargement du FTP est réussi" pour les deux cas. Quelle modification je dois faire dans le fichier batch pour obtenir la sortie correcte

 @ECHO OFF SET ReturnCode="0" SET EncryptFilePath=%1 SET ReturnCode=0 ::Echo Step4 : Upload Encrypted file in FTP server is started @Echo open 104.213.13.281 21>>C:\Case360_EAR_Tool\%FileName%.txt @Echo Dev>>C:\Case360_EAR_Tool\%FileName%.txt @Echo MyDev>>C:\Case360_EAR_Tool\%FileName%.txt @echo binary>>C:\Case360_EAR_Tool\%FileName%.txt @echo cd inbound\development\extracts\yxd0>>C:\Case360_EAR_Tool\%FileName%.txt @echo put %EncryptFilePath%>>C:\Case360_EAR_Tool\%FileName%.txt @echo quit>>C:\Case360_EAR_Tool\%FileName%.txt ftp -i -s:"C:\Case360_EAR_Tool\%FileName%.txt" && ( echo FTP upload is successful DEL C:\Case360_EAR_Tool\%FileName%.txt ) || ( echo FTP upload is failed echo ReturnCode="1" DEL C:\Case360_EAR_Tool\%FileName%.txt exit ) echo %ReturnCode% exit 

Je ne pense pas qu'il existe un moyen fiable de le faire avec Windows ftp.exe .

Il ne rapportera pas le résultat via le code de sortie. Il retourne toujours 0, même en cas d'erreur.

Tout ce que vous pouvez faire est d'analyser la sortie ftp.exe . Mais c'est une approche plutôt sale. Notez que ftp.exe ne séparera même pas les erreurs en une sortie d'erreur, tout envoie tout à une sortie standard.


Vous devriez utiliser un client FTP tiers.

Par exemple avec les scripts WinSCP, vous pouvez utiliser:

 @echo off winscp.com /log=ftp.log /command ^ "open ftp://user:password@example.com/" ^ "cd inbound/development/extracts/yxd0" ^ "put %EncryptFilePath%" ^ "exit" && ( echo FTP upload is successful ) || ( echo FTP upload is failed exit ) 

ftp://user:password@example.com/ serait ftp://Dev:MyDev@104.213.13.281/

Voir aussi Convertir le script FTP de Windows en script FTP WinSCP .

(Je suis l'auteur de WinSCP)