IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Télécharger un dossier via FTP


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Homme Profil pro
    DevOps
    Inscrit en
    Juillet 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : DevOps

    Informations forums :
    Inscription : Juillet 2014
    Messages : 37
    Points : 43
    Points
    43
    Par défaut Télécharger un dossier via FTP
    Re-bonjour !

    Comment télécharger un dossier (et son contenu) ?

    Voici mon script actuel :

    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
    @echo off
    Set FTPSERVER=ipftp
    Set USER=user
    Set Password=mdp
    Set Dossier=/App/
    
    > ftp.do echo Open %FTPSERVER%
    >> ftp.do echo %USER%
    >> ftp.do echo %Password%
    >> ftp.do echo hash
    >> ftp.do echo bin
    >> ftp.do echo cd %Dossier%
    >> ftp.do echo mget *
    >> ftp.do echo bye
    
    ftp -s:ftp.do
    Del /Q ftp.do
    Merci pour votre aide !

    Guiguir68

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Le protocole FTP ne supporte pas le téléchargement des répertoires . La plupart des clients FTP (autant que je sache, non compris les outils de ligne de commande du standard "ftp") permettent de télécharger des répertoires en obtenant leur Liste de façon récursive et le téléchargement de fichiers un par un automatiquement. Donc il faut penser à le faire avec la même chose par programmation batch.
    Allez à vos claviers (pour les membres du DVP) pour pondre ce code

  3. #3
    Membre du Club
    Homme Profil pro
    DevOps
    Inscrit en
    Juillet 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : DevOps

    Informations forums :
    Inscription : Juillet 2014
    Messages : 37
    Points : 43
    Points
    43
    Par défaut
    Est ce que lister le contenu dans un fichier txt et d'injecter tous les noms dans des variables pourrait faire l'affaire ?

  4. #4
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Je crois que le code est enfin pondu , il vous reste juste de le tester avec vos paramètres
    Explication du code :
    Dans ce code, j'ai utilisé un serveur anonyme, juste que vous puissiez tester avec moi.
    Donc en gros ce batch , se connecte pour :
    1. La 1er fois pour lister tous les fichiers qui sont contenus dans un dossier particulier (que l'on veut le télécharger) et il le stocke dans un fichier texte (TLIST.txt).
    2. une deuxième fois pour lire son contenu afin de pouvoir télécharger les fichiers un par un avec une boucle FOR.
    3. Il crée un dossier avec le même nom du dossier qui se trouve dans le serveur FTP pour y déplacer les fichiers déjà téléchargés (c'est comme on alors téléchargé un dossier) (une simulation de FileZilla et les autres clients FTP) c'est ça l'astuce

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    @echo off
    mode con cols=85 lines=22 & Color A
    ::***********************************
    Set FTPSERVER=ftp.ed.ac.uk
    Title Lister les fichiers et les dossiers sur un serveur FTP (%FTPSERVER%) by Hackoo
    Set USER=anonymous
    Set Password=anonymous@anonymous.com
    Set DossierFTP=/pub/EdLAN
    Set DownloadFolder=EdLAN
    ::*******************************************************
    Goto Lister
    :Lister
    > ft.do echo Open %FTPSERVER%
    >> ft.do echo %USER%
    >> ft.do echo %Password%
    >> ft.do echo bin
    >> ft.do echo cd %DossierFTP%
    >> ft.do echo ls -l TLIST.txt
    >> ft.do echo bye
    ftp -s:ft.do
    del ft.do
    CLS
    Color 9B
    echo Download la liste
    pause
    Goto Download
    ::*********************************************************
    :Download
    > ft.do echo Open %FTPSERVER%
    >> ft.do echo %USER%
    >> ft.do echo %Password%
    >> ft.do echo bin
    >> ft.do echo cd %DossierFTP%
    for /F %%f in (TLIST.txt) do ( >> ft.do echo get %%f) 
    >> ft.do echo bye
    ftp -s:ft.do
    del ft.do
    CLS
    Color 9A
    pause
    echo Deplacer la liste
    Goto Deplacer
    ::*********************************************************
    :Deplacer
    Set Source=%~dp0
    Set Destination=%Source%%DownloadFolder%
    if not exist %DownloadFolder% MD %DownloadFolder%
    for /F %%f in (TLIST.txt) do (move "%Source%%%f" "%Destination%")
    pause
    Remarque : Bien sûr vous pouviez enlever les pauses pour qu'il le fasse automatiquement

  5. #5
    Membre du Club
    Homme Profil pro
    DevOps
    Inscrit en
    Juillet 2014
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : DevOps

    Informations forums :
    Inscription : Juillet 2014
    Messages : 37
    Points : 43
    Points
    43
    Par défaut
    Bizarre... Quand on arrive au dernier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /F %%f in (TLIST.txt) do (move "%Source%%%f" "%Destination%")
    On me dit que le fichier est inaccessible, il serait utilisé par un autre processus.

    Pourtant il n'y a rien d'ouvert !

    C'est bien du TLIST.txt qu'on parle ?

  6. #6
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Avez-vous cette erreur dans mon code ou bien avec vos paramètres ?

  7. #7
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Testez ce code qui marche très bien chez moi 5/5
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    @echo off
    mode con cols=85 lines=22 & Color A
    ::***********************************
    Set FTPSERVER=ftp.microsoft.com
    Title Lister les fichiers et les dossiers sur un serveur FTP (%FTPSERVER%) by Hackoo
    Set USER=anonymous
    Set Password=anonymous@anonymous.com
    Set DossierFTP=/bussys/winsock/winsock2/
    Set DownloadFolder=winsock2
    ::*******************************************************
    Goto Lister
    :Lister
    > ft.do echo Open %FTPSERVER%
    >> ft.do echo %USER%
    >> ft.do echo %Password%
    >> ft.do echo prompt n
    >> ft.do echo bin
    >> ft.do echo cd %DossierFTP%
    >> ft.do echo ls -h TLIST.txt
    >> ft.do echo bye
    ftp -s:ft.do
    del ft.do
    CLS
    Color 9B
    echo Download la liste
    pause
    Goto Download
    ::*********************************************************
    :Download
    > ft.do echo Open %FTPSERVER%
    >> ft.do echo %USER%
    >> ft.do echo %Password%
    >> ft.do echo prompt n
    >> ft.do echo bin
    >> ft.do echo cd %DossierFTP%
    for /F %%f in (TLIST.txt) do ( >> ft.do echo get %%f) 
    >> ft.do echo bye
    ftp -s:ft.do
    del ft.do
    CLS
    Color 9A
    pause
    echo Deplacer la liste
    Goto Deplacer
    ::*********************************************************
    :Deplacer
    Set Source=%~dp0
    Set Destination=%Source%%DownloadFolder%
    if not exist %DownloadFolder% MD %DownloadFolder%
    for /F %%f in (TLIST.txt) do (move "%Source%%%f" "%Destination%")
    pause

Discussions similaires

  1. Récupérer un dossier via FTP
    Par Hoopsy dans le forum Langage
    Réponses: 2
    Dernier message: 28/01/2009, 13h12
  2. Réponses: 2
    Dernier message: 10/03/2008, 13h39
  3. [FTP] Télécharger les données d'un formulaire via FTP
    Par Alexandrebox dans le forum Langage
    Réponses: 1
    Dernier message: 06/03/2007, 10h26
  4. Réponses: 14
    Dernier message: 24/10/2005, 16h02
  5. Télécharger via FTP
    Par chleuh dans le forum Web & réseau
    Réponses: 4
    Dernier message: 20/06/2005, 10h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo