Fichier de commandes Windows – Ne téléchargez que le dernier fichier sur FTP

Je veux faire un transfert automatique de fichiers du serveur Windows vers mon FTP.

Le problème est que le fichier est généré avec un horodatage dans son nom (le nom n’est pas fixe). Je dois donc toujours télécharger uniquement la dernière version (la plus récente) du fichier. Y a-t-il un moyen de le faire?

En cours d’exécution sous Windows Server 2003. Merci.

Pour sélectionner le fichier le plus récent dans un fichier de commandes Windows, voir
Comment écrire un script batch Windows pour copier le fichier le plus récent depuis un répertoire?

Sur cette base, vous pouvez créer un fichier batch de téléchargement comme:

@echo off FOR /F %%I IN ('DIR C:\source\path\*.* /B /O:D') DO SET NEWEST_FILE=%%I echo Uploading %NEWEST_FILE% ( echo open ftp.example.com echo username echo password echo put C:\source\path\%NEWEST_FILE% /target/path/%NEWEST_FILE% echo bye ) > ftp.txt ftp.exe -s:ftp.txt 

Pour une approche plus simple et plus fiable, utilisez un client FTP tiers plus puissant.

Par exemple, avec le client FTP WinSCP , vous pouvez utiliser le commutateur -latest de sa commande put .

Un exemple de fichier de commandes ( .bat ):

 winscp.com /ini=nul /command ^ "open ftp://username:[email protected]/" ^ "put -latest C:\source\path\* /target/path/" ^ "exit" 

WinSCP peut même générer le script / fichier de commandes pour vous (il suffit d’append manuellement le commutateur -latest ).

Voir l’ article de WinSCP sur le téléchargement du fichier le plus récent .

(Je suis l’auteur de WinSCP)