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

Protocoles Discussion :

[batch] Script récupération fichiers sur serveur FTP


Sujet :

Protocoles

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webplanneur
    Inscrit en
    Décembre 2016
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Décembre 2016
    Messages : 35
    Points : 22
    Points
    22
    Par défaut [batch] Script récupération fichiers sur serveur FTP
    Bonjour à tous,


    Nous avons un script qui nous permet d'extraire certains des fichiers d'un serveur FTP, et les transférer dans un dossier du disque C:

    Le script en question :
    Code Batch : 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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    @Echo Off
     
    REM -- Define File Filter, i.e. files with extension .txt
    Set FindStrArgs=/E /C:".txt"
     
    REM -- Extract Ftp Script to create List of Files
    Set "FtpCommand=ls"
    Call:extractFileSection "[Ftp Script 1]" "-">"%temp%\%~n0.ftp"
    Rem Notepad "%temp%\%~n0.ftp"
     
    REM -- Execute Ftp Script, collect File Names
    Set "FileList="
    For /F "Delims=" %%A In ('"Ftp -v -i -s:"%temp%\%~n0.ftp"|Findstr %FindStrArgs%"') Do (
        Call Set "FileList=%%FileList%% "%%A""
    )
     
    REM -- Extract Ftp Script to download files that don't exist in local folder
    Set "FtpCommand=mget"
    For %%A In (%FileList%) Do If Not Exist "%%~A" Call Set "FtpCommand=%%FtpCommand%% "%%~A""
    Call:extractFileSection "[Ftp Script 1]" "-">"%temp%\%~n0.ftp"
    Rem Notepad "%temp%\%~n0.ftp"
     
    For %%A In (%FtpCommand%) Do Echo.%%A
     
    REM -- Execute Ftp Script, download files
    ftp -i -s:"%temp%\%~n0.ftp"
    Del "%temp%\%~n0.ftp"
    GOTO:EOF
     
     
    :extractFileSection StartMark EndMark FileName -- extract a section of file that is defined by a start and end mark
    ::                  -- [IN]     StartMark - start mark, use '...:S' mark to allow variable substitution
    ::                  -- [IN,OPT] EndMark   - optional end mark, default is first empty line
    ::                  -- [IN,OPT] FileName  - optional source file, default is THIS file
    :$created 20080219 :$changed 20100205 :$categories ReadFile
    :$source https://www.dostips.com
    SETLOCAL Disabledelayedexpansion
    set "bmk=%~1"
    set "emk=%~2"
    set "src=%~3"
    set "bExtr="
    set "bSubs="
    if "%src%"=="" set src=%~f0&        rem if no source file then assume THIS file
    for /f "tokens=1,* delims=]" %%A in ('find /n /v "" "%src%"') do (
        if /i "%%B"=="%emk%" set "bExtr="&set "bSubs="
        if defined bExtr if defined bSubs (call echo.%%B) ELSE (echo.%%B)
        if /i "%%B"=="%bmk%"   set "bExtr=Y"
        if /i "%%B"=="%bmk%:S" set "bExtr=Y"&set "bSubs=Y"
    )
    EXIT /b
     
     
    [Ftp Script 1]:S
    !Title Connecting...
    open example.com
    username
    password
     
    !Title Preparing...
    cd public_html/MyRemoteDirectory
    lcd c:\MyLocalDirectory
    binary
    hash
     
    !Title Processing... %FtpCommand%
    %FtpCommand%
     
    !Title Disconnecting...
    disconnect
    bye


    Ce script fonctionne correctement sur un des PC. Mais sur l'autre, il bloque ici :
    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    !Title Processing... %FtpCommand%
    %FtpCommand%
    Les fichiers ne sont pas extraits


    Les 2 PC sont identiques, même config et mêmes noms de dossiers. Le serveur FTP est bien accessible. J'extrais des fichiers manuellement sans soucis.


    Avez-vous une éventuelle idée du problème ?



    Merci !

  2. #2
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    15 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 15 013
    Points : 23 386
    Points
    23 386
    Billets dans le blog
    10
    Par défaut
    Bonsoir

    Tu es sur qu'il trouve bien le dossier sur le disque C: ?

    Souvent Windows ne se positionne pas par défaut au même endroit sur le disque C:.

    En ouvrant l'invite de commandes, tu te retrouves au même endroit sur les deux PC ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webplanneur
    Inscrit en
    Décembre 2016
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Décembre 2016
    Messages : 35
    Points : 22
    Points
    22
    Par défaut
    Bonjour,


    Merci pour ta réponse. Je tombe exactement au même endroit sur les 2 PC, les dossiers sont identiques...

  4. #4
    Expert éminent sénior
    Avatar de JML19
    Homme Profil pro
    Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Inscrit en
    Décembre 2010
    Messages
    15 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corrèze (Limousin)

    Informations professionnelles :
    Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2010
    Messages : 15 013
    Points : 23 386
    Points
    23 386
    Billets dans le blog
    10
    Par défaut
    Bonjour

    Essaies de te positionner dans le bon dossier sur C: avant de lancer la commande d'extraction.

    Essais aussi d'utiliser la bonne page de code pour l'interprétation de la commande.

    Il s'agit de texte, si la page de code n'est pas la même, elle ne sera pas interprétée de la même façon.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Webplanneur
    Inscrit en
    Décembre 2016
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Décembre 2016
    Messages : 35
    Points : 22
    Points
    22
    Par défaut
    J'ai tenté de me positionner à la racine de c:/ pour y déposer les fichiers :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    !Title Preparing...
    cd public_html/MyRemoteDirectory
    lcd c:\
    binary
    hash
    Rien n'y fait, ça bloque toujours à cette même étape "Titre Processing"
    Ca laisse penser que le problème ne vient pas des dossiers (Qui sont accessibles), mais plutôt de la commande %FtpCommand%


    Qu'entends tu par ? :
    Essais aussi d'utiliser la bonne page de code pour l'interprétation de la commande.
    Il s'agit de texte, si la page de code n'est pas la même, elle ne sera pas interprétée de la même façon.

    Merci

  6. #6
    Membre à l'essai
    Homme Profil pro
    Webplanneur
    Inscrit en
    Décembre 2016
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Webplanneur

    Informations forums :
    Inscription : Décembre 2016
    Messages : 35
    Points : 22
    Points
    22
    Par défaut
    C'est résolu !


    Si ça peut aider certains, le problème ne venait pas du script en lui-même, mais du pare-feu, au niveau des programmes autorisés.

    La case "Logiciel de transfert de fichiers" était désactivée, ce qui empêchait la récupération des fichiers sur le FTP --> On bloquait à la ligne %FtpCommand%


    Ca parait plutôt logique après coup...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/05/2011, 20h06
  2. Formulaire d'insertion de fichiers sur serveur FTP
    Par CyrilD dans le forum Langage
    Réponses: 2
    Dernier message: 17/06/2010, 17h20
  3. Enumération fichiers sur serveur FTP
    Par STRIKER94 dans le forum Excel
    Réponses: 15
    Dernier message: 11/04/2010, 13h13
  4. + de 2000 fichiers sur serveur FTP
    Par _seb_ dans le forum WinDev
    Réponses: 4
    Dernier message: 17/09/2007, 10h59
  5. Erreur programme d'envoi fichier sur serveur ftp
    Par batssa dans le forum Langage
    Réponses: 3
    Dernier message: 17/08/2007, 14h30

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