Squall NTCK Posté(e) le 9 septembre 2010 Partager Posté(e) le 9 septembre 2010 Bonjour à tous, j'ai un petit soucis, je dois faire un script qui récupère des fichiers sur un serveur SFTP, et une fois ceux ci récupérer je dois les effacer du serveur sFTP distant. La récupération des fichiers fonctionne et mes fichiers sont stockés dans un dossier transfer, je dois maintenant, supprimer du serveur les fichiers déjà téléchargés J'ai donc fait une boucle mais je pense que cela ne fonctionne pas @echo ---------- Transaction du %date% %time% --------------- >> %logFile% dir %transferFolder% >>%ListFichier% rem Transfert Terminé cd %transferFolder% :: Boucle pour supprimer chaque fichier déjà téléchargé :FileDelLoop for %fileName "tokens=*" in ('%transferFolder%/*.*') do goto FileDel echo %nbTransferFile% pause echo Fin De programme :FileDel %connexionSFT% %fileName% >> %logFileDel% goto FileDelLoop Pourriez vous m'aider D'avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
uzak Posté(e) le 9 septembre 2010 Partager Posté(e) le 9 septembre 2010 J'y connais pas des masses en script dos, je risque de dire des conneries. Tu recommencerais pas ta boucle à chaque fois avec tes goto ? Le goto FileDel sort de la boucle à mon avis, et quand tu reviens avec le goto FileDelLoop tu relances la boucle. Tu pourrais faire ça : for %fileName "tokens=*" in ('%transferFolder%/*.*') do script_qui_supprime.bat %fileName% pause echo Fin De programme avec un script_qui_supprime.bat qui fait le boulot. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Squall NTCK Posté(e) le 9 septembre 2010 Auteur Partager Posté(e) le 9 septembre 2010 Je pense que tu as raison. la commande que tu me donnes ne fonctionnes pas non plus j'ai essayé ça for %transferFolder% in (*.*) do pause mais il ne fait rien (et encore moins de pause). La variable transferFolder contient le chemin du dossier dans lequel se trouve les fichiers que je souhaite lister.<br><br> Je me base sur le tutoriel Ici voici ce que je peux lire Exécuter une commande pour un jeu de fichiers La syntaxe générale est celle-ci : For {%variable|%%variable} in (jeu) do commande [Options_Ligne_Commande] Prenons tout d'abord un exemple... Si nous souhaitons afficher le contenu de tous les fichiers .txt et .doc du répertoire courant, nous saisirons : for %1 in (*.doc *.txt) do type %1 Signalons que la variable peut être un chiffre ou une lettre (par exemple, %a fait aussi bien l'affaire). Astuce : Si nous utilisons cette commande dans un fichier de commande le signe % doit être redoublé. Jeu représente les noms de fichiers et doit être placé entre parenthèses. Les mots clés in et do sont possibles lors de l'utilisation de la commande "For". Nous pouvons les traduire par ceci : Pour tous les fichiers présents dans (in) ce jeu de fichiers exécute (do) cette commande. Il vous est possible d'utiliser les paramètres spécifiques à chaque commande (Options_Ligne_Commande). Une manière de lister les noms seuls des fichiers exécutables du répertoire courant est de saisir : for %a in (*.exe) do @echo %a La simple liste de tous les fichiers (à l'exception des répertoires) s'obtient en saisissant : for %a in (*) do @echo %a <br><br><br>en tout cas pour l'aide<br> Lien vers le commentaire Partager sur d’autres sites More sharing options...
uzak Posté(e) le 9 septembre 2010 Partager Posté(e) le 9 septembre 2010 Essayes ça (dans un fichier) cd %transferFolder for %%file in (*.*) do echo %file Oo, j'ai essayé en ligne de commande, il ne prend pas les variables de plusieurs lettres... for %file in (*.*) do echo %file --> marche pas for %l in (*.*) do echo %l --> marche cd %transferFolder for %%f in (*.*) do echo %f Lien vers le commentaire Partager sur d’autres sites More sharing options...
Squall NTCK Posté(e) le 9 septembre 2010 Auteur Partager Posté(e) le 9 septembre 2010 Génial cela fonctionne, je regardais du coté forfiles de chez MS qui a l'air pas mal mais je n'arrive pas à le trouver Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.