Bonjour,
Je ne suis pas programmeur mais pour simplifier une partie de mon travail j’aimerai en automatiser une partie.
J’ai essayé pas mal de choses trouvé sur le net mais je ne m’en sort pas, donc si quelqu’un pouvait me donner un coup de main ça serait super
Le contexte :
Je télécharge des fichiers récupérés sur un ftp, envoyé par des unités, normalement 15 fichiers par unités.
Cependant il arrive que le transfert ne soit pas correct et seulement une partie des 15 fichiers soit transféré(10,12).
Le job
Donc je dois télécharger les fichiers du ftp et vérifier que chaque unité a envoyé 15 fichiers.
Sinon supprimer les fichiers des unités qui ne sont pas complètes et contacter l’unité dont le transfert n’a pas fonctionné correctement pour forcer un nouveau transfert ftp.
Mon probleme
J’ai adapté un script de téléchargement ftp et ça marche. Tous les fichiers présent sur le ftp sont téléchargés dans un dossier appelé DL.
Je dois donc vérifier que chaque unité a envoyé 15 fichiers
Chaque fichier reçu commence par un nombre à 5 chiffres désignant une unité.
Exple : 14999-*******.txt
J’ai un fichier listeunite.txt qui contient la liste des unités qui doivent envoyer des fichiers (contient les codes à 5 chiffres).
Exemple :
10040
10125
10147
10187
Je pensais faire une boucle dans le genre
-pour chaque unité dans le fichier listeunite.txt on compte le nombre de fichiers
-si nombre de fichier =15 on déplace les fichiers dans un dossier globalatraiter
-si cpt <15 écrire dans un fichier log (unité ????? incomplet le --/--/-- nb ficrecu) et déplacer dans incomplet dans un autre dossier incomplet
le batch marche jusque là
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 cd \RecuperationFtp\DL\ REM comptage des fichiers dans le dossier DL @echo off set /a nbfic=0 for %%a in (*.txt) do set /a nbfic+=1 echo "nb de fichier dans le dossier DL : " %nbfic% dir /b >> listedl.txt
après je voulais parcourir le dossier DL (ou un fichier contenant la liste des fichiers se trouvant dans DL : listedl.txt) autant de fois qu’il y a de numéro d’unités dans le fichier listeunites.txt.
Comme je n’arrive pas découper le nom des fichiers pour récupérer les 5 premiers caractères et compter le nombre de fichiers… c’est compromis. Ou alors une idée pour le faire ?
Merci d’avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 for /f "delims="%%b in (listedl.txt) do call :commande "%%b" pause exit :commande set unite=%b~0,5% echo %unite%
Partager