Bonjour,

Je suis entièrement débutant sur le langage batch.

Au boulot j'ai du créer un petit .bat qui se connecte à un ftp distant pour récupérer des fichiers et les copier en local.

voici le script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
E:
cd E:\Outils\FTP_Cegedim

REM Creation du fichier de commandes
FOR /F "tokens=1,2,3,4 delims=/ " %%i IN ('date /t') DO (
  SET Mois=%%j
  SET Jour=%%k
  SET Annee=%%l
)

echo lcd E:\BIZTALK_FOLDER\SIRH\IN39_EXPCPT_Cegedim > getEXP.dat
echo cd /clients/tigf/courant/resultats/$all/Compta/%Annee%-%Mois% >> getEXP.dat
echo mget ODPAIE.DAT >> getEXP.dat
echo lcd E:\BIZTALK_FOLDER\OUT_EXPORTCPT >> getEXP.dat
echo mget *.xls >> getEXP.dat
echo mget *.pdf >> getEXP.dat
echo mget *.csv >> getEXP.dat

REM Lancement de la récupération
psftp.exe nom_user@nom_session_putty -P 22  -pw mdp -b getEXP.dat 1> getEXP.log 2>&1
Pour expliquer brièvement, on se positionne dans le dossier en local de putty pour lancer le psftp. On créé un fichier .dat qui sera exécuter par la commande psftp.exe.

Ensuite on se positionne sur le FTP, on tente de récupérer 4 fichiers différents (ODPAIE.DAT, *.xls, ...).

Le problème est que le client peut parfois "oublier" de déposer des fichiers. Par exemple hier le fichier ODPAIE.DAT n'était pas disponible, du coup le programme s'arrête de ne traite pas le reste.

J'ai cru voir sur google que la commande try catch n'existe pas (sinon j'aurais tenter à chaque fichier, et dupliquer les commandes dans le catch pour exécuter la suite).

Y a t-il un moyen de vérifier si le fichier existe sur le serveur avant de faire les commandes mget de récupération ?
Merci d'avance !