Envoyer les fichier d'un répertoire un à un par ftp sous DOS
brucine Messages postés 21742 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
rep (fichier1, fichier2, fichier3,...................fichiern)
Je voudrais lire fichier par fichier et envoyer un à un par FTP vers la destination avec la boucle for sous Dos.
Merci d'avance.
- Envoyer les fichier d'un répertoire un à un par ftp sous DOS
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier bin - Guide
- Ouvrir un fichier .dat - Guide
- Creer un fichier .bat - Guide
4 réponses
Bonjour,
Il faut d'abord préciser le contexte :
- s'agit-il d'un serveur FTP, SFTP ou bien FTPS ?
- quand tu dis DOS ça veut dire l'invite de commandes (cmd.exe) ?
Bonjour,
Je suppose qu'il ne s'agit pas de mode Dos réel mais d'un batch en mode Dos émulé sous Windows.
Sauf à vouloir pour une raison qui m'échappe fermer et rouvrir la connexion FTP pour chaque fichier ou bien n'envoyer qu'une partie des fichiers selon un critère particulier, l'intérêt d'une boucle FOR m'échappe aussi.
Pourquoi une fois la connexion et le dossier de destination établis ne pas se contenter de
prompt
mput (mondossiersource)\*.*
Je ne comprends toujours pas: même si on boucle pour envoyer les fichiers l'un après l'autre, ils le seront toujours exactement comme par une commande FTP appliquée à tous les fichiers de ce répertoire, on peut toujours temporiser dans la boucle entre chaque fichier mais, dans tous les cas, ça n'empêchera pas une déconnexion éventuelle?
Ou bien on ne doit pas boucler sur le transfert des fichiers à proprement parler mais sur la connexion, se connecter, envoyer un fichier, se déconnecter, se reconnecter et ainsi de suite.
Bonjour,
oui je trouve que c'set plus correcte de boucler sur la connexion, si connecté on envoi sinon on envoi pas!
pouvez vous interpréter ça en script batch?
Merci
En supposant que l'on n'ait pas à contrôler que le fichier n'existe pas déjà sur le serveur distant ni à le supprimer après transfert dans la source, quelque chose dans ce genre là, je n'ai pas testé, je n'ai plus de site Web actif.
@ECHO OFF
CD /D E:\dossier_source
FOR /F "delims=" %%a in ('dir /b E:\dossier_source\*.*') DO SET FILE=%%a & CALL :PROCESS
:PROCESS
FTP tartempion.bidule.net
FTP user (username) (password) (account)
FTP cd (dossier_destination)
PUT %FILE%
FTP close
:EOF
Bonsoir,
mon ftp va faire du "get" ( de la récupération de fichiers)
c'est à dire je me connecte en ftp sur le pc distant, je liste le nombre de fichiers à rapatrier,
ensuite je fais ma boucle for pour récupérer les fichiers distant un à un sur mon pc.
Merci.
Ta question initiale était dans l'autre sens.
ça ne change pas fondamentalement la question sinon que les commandes DIR et CD doivent spécifier le dossier serveur cible par son chemin réseau \\serveur\répertoire sur lequel on doit bien sûr avoir des droits d'accès et qu'il faut bien sûr remplacer PUT par GET et soit exécuter le batch à partir du dossier local cible, soit spécifier explicitement son chemin dans la commande GET: GET %FILE% (mon_chemin_local)
Bonjour,
merci pour votre réponse.
il s'agit d'un simple ftp dans un script batch sous Windows.
cordialement.