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 :

Transfert de fichiers automatisé sur serveur par batch


Sujet :

Scripts/Batch

  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 1
    Par défaut Transfert de fichiers automatisé sur serveur par batch
    Bonjour à tous,

    Je vous expose mon problème : j'ai pour mission dans le cadre de mon travail de regrouper tous les fichiers photos ayant une extension .CR2 contenus sur tous les ordinateurs de la boite (63 pc) pour les transférer dans un dossier de sauvegarde situé sur un même et unique serveur. Le problème est que tous ces fichiers sont magistralement dispersés dans une multitude de dossiers/sous dossiers et que je crains d'avoir a y passer le reste de ma vie pour au final en oublier.

    Je cherche donc pour éviter cela a réaliser un batch qui enverrait directement les fichiers .CR2 contenus sur les disques vers le serveur en question. (Tous les pc sont sous Windows)

    J'ai trouvé plusieurs pistes sur le net mais mes faibles connaissances en la matière m’empêchent d'obtenir une syntaxe correcte.
    Si vous avez une solution a mon problème je vous serai éternellement reconnaissant!

    Voici le batch d'appel et celui de connexion au serveur que j'ai actuellement mais dont la syntaxe ne doit pas être correcte.

    APPEL.bat:
    Code bat : 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
     
    @echo off
     
    set SRCDIR=C:/
    set TRG=/Sauvegardes
    set FTPHOST=xx.xx.xx.xx
    set FTPUSR=xxxxx
    set FTPASS=xxxxx
     
     
    for /F "delims=" %%a in ('dir /b /s C:\*.CR2') do 
    set FILE="%%a"
    call FTP_PUT.BAT %FTPHOST% %FTPUSR% %FTPASS% bin %SRCDIR% %TRG% 
     
    %FILE%
    if %RETVAL% EQU 0 GOTO STEP2
    	echo Echec de l'envoi du fichier %FILE%
    	pause

    FTP_PUT.bat:
    Code bat : 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
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    @echo off
     
    rem - PARAMETRES : 
    rem - 		Serveur FTP cible
    rem - 		User
    rem - 		Password
    rem - 		Mode: asci/bin
    rem - 		Chemin du dossier source (local)
    rem - 		Chemin du dossier cible (sur le serveur)
    rem - 		masque des fichiers à envoyer
    rem -
    rem - VALEUR DE RETOUR :
    rem -		RETVAL = 0 si OK, ou 1 sur erreur
    rem 
     
    -------------------------------------------------------------------
     
    ---------
       set v_FTP_ADR=%1
       set v_FTP_USR=%2
       set v_FTP_PWD=%3
       set v_FTP_MODE=%4
       set v_REP_SRC=%5
       set v_REP_DEST=%6
       set v_FIC_SRC=%7
     
       set v_REP_TMP=%TMP%
       set v_FIC_CMD=%v_REP_TMP%\FTP_PUT_%RANDOM%.tmp
       set v_FIC_RES=%v_REP_TMP%\FTP_PUT_%RANDOM%.tmp
    rem 
     
    -------------------------------------------------------------------
     
    ---------
       echo %0 %*
    rem 
     
    -------------------------------------------------------------------
     
    ---------
       echo open %v_FTP_ADR%                > %v_FIC_CMD%
       echo user %v_FTP_USR% %v_FTP_PWD%   >> %v_FIC_CMD%
       echo literal pasv                   >> %v_FIC_CMD%
       echo %v_FTP_MODE%                   >> %v_FIC_CMD%
       echo cd   %v_REP_DEST%              >> %v_FIC_CMD%
       echo mput %v_REP_SRC%\%v_FIC_SRC%   >> %v_FIC_CMD%
       echo by                             >> %v_FIC_CMD%
     
       FTP.EXE -i -n -v < %v_FIC_CMD%       > %v_FIC_RES%
     
       FIND "File successfully transferred" %v_FIC_RES% >NUL
       IF NOT ERRORLEVEL 1 GOTO :SUITE
       GOTO :ERR_BATCH
    rem 
     
    -------------------------------------------------------------------
     
    ---------
    rem - Suppression des fichiers temporaires
    rem 
     
    -------------------------------------------------------------------
     
    ---------
    :SUITE
       del %v_FIC_CMD%
       del %v_FIC_RES%
     
       SET RETVAL=0
       GOTO :FIN_BATCH
    rem 
     
    -------------------------------------------------------------------
     
    ---------
    rem - Gestion des erreurs
    rem 
     
    -------------------------------------------------------------------
     
    ---------
    :ERR_BATCH
       echo Erreur a l'envoi des fichiers %v_REP_SRC%\%v_FIC_SRC%
       type %v_FIC_CMD%
       type %v_FIC_RES%
       SET RETVAL=1
    :FIN_BATCH

  2. #2
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut,

    Les fichiers sont-ils éliminer une fois envoyé sur le serveur ?

    Ils serait peut-être plus judicieux de d'abord centraliser tout les fichiers dans un
    répertoire d'attente. Pour éviter de tout rechercher en cas de FAIL de l'envoi.

    Et ensuite faire des envois en lot avec MPUT. Plûtot que de faire une connexion pour chaque fichier.
    Puis au final faire une verification pour voir si tout les fichiers sont bien sur le serveur.

    Qu'en penses-tu ?



Discussions similaires

  1. Transfert de fichier Client vers Serveur via INDY erreur ?
    Par bzh56 dans le forum Web & réseau
    Réponses: 2
    Dernier message: 20/03/2006, 10h34
  2. problème d'accès aux données sur serveur par poste client
    Par rahan_dave dans le forum Requêtes
    Réponses: 1
    Dernier message: 25/02/2006, 09h13
  3. [VB.Net] Transfert de fichier local vers serveur
    Par geros dans le forum ASP.NET
    Réponses: 4
    Dernier message: 13/02/2006, 15h14
  4. tester les fichiers perl sur serveur
    Par delaune dans le forum Langage
    Réponses: 6
    Dernier message: 19/11/2005, 16h50

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