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 :

Problème de vérification d'une chaîne dans une boucle [Batch]


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Problème de vérification d'une chaîne dans une boucle
    Bonjour,

    D'un faible niveau en batch, j'ai commencé à écrire un script de sauvegarde. Celui-ci sauvegarde une base de données, compresse le fichier et le sauvegarde par FTP.

    Au départ, j'ai fait une vérification via le fichier log renvoyé par le FTP de la manière suivante :

    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
    echo user xxxx> ftpcmd.tmp
    echo xxxx>> ftpcmd.tmp
    echo prompt>> ftpcmd.tmp
    echo bin>> ftpcmd.tmp
    echo put *.7z>> ftpcmd.tmp
    rem un seul fichier à uploader mais de nom variable donc j'ai mis *.7z par facilité
    echo quit>> ftpcmd.tmp
    ftp -n -s:ftpcmd.tmp ftp.ftp.com >> bak-%date_cre:~6,4%%date_cre:~3,2%%date_cre:~0,2%-%heure: =0%.log
    rem variables date_cre et heure définies en amont en fonction de la date et de l'heure).
    del ftpcmd.tmp
    
    find /c "226 T" bak-%date_cre:~6,4%%date_cre:~3,2%%date_cre:~0,2%-%heure: =0%.log
    rem recherche sur la chaîne 226 T qui peut être 226 Téléchargement terminé ou 226 Transfer complete
    if errorlevel 1 goto err_transf
    set err=0
    del *.7z
    goto fin_trait_err
    :err_transf
    set err=1
    :fin_trait_err
    Cela fonctionne très bien à priori. Mais certains fichiers sont très gros (10 Go) et donc j'ai donc rajouté un découpage des fichiers à uploader.

    Pour faire mon upload, je passe donc par une boucle :

    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
    for %%X in (*.7z.*) do (
    set err=0
    echo user xxxx> ftpcmd.tmp
    echo xxxx>> ftpcmd.tmp
    echo prompt>> ftpcmd.tmp
    echo bin>> ftpcmd.tmp
    echo put %%X>> ftpcmd.tmp
    echo quit>> ftpcmd.tmp
    ftp -n -s:ftpcmd.tmp 69901.fr02.ikeepincloud.com > ftp.log
    del ftpcmd.tmp
    set err=0
    find /c "226 T" ftp.log
    if errorlevel 1 set err=1
    if %err% equ 0 del %%X
    del ftp.log
    if %err% equ 1 goto fin_inc
    )
    Mais cela ne fonctionne pas. Si quelqu’un peut m'aider. Et si éventuellement vous avez un bon ouvrage à me conseiller, car oui je trouve des infos sur internet, mais de manière disséminée, et comme je vais sûrement devoir en faire d'autres...

    Merci d'avance à tous.

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Il semblerait que ce soit la ligne if errorlevel 1 qui ne fonctionne pas. Parce qu'elle se trouve dans la boucle ??

    J'ai essayé de rajouter SETLOCAL EnableDelayedExpansion mais ça ne change rien.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Décembre 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2013
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Trouvé tout seul

    En fait il faut écrire if !errorlevel!==1

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

Discussions similaires

  1. [XL-2007] problème de codage en vba ("copie d'une partie d'une cellule dans une cellule vide")
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/10/2010, 17h01
  2. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. Trouver la position d'une chaîne dans une chaîne
    Par taka10 dans le forum Langage
    Réponses: 1
    Dernier message: 03/01/2007, 23h18
  5. Réponses: 4
    Dernier message: 11/08/2006, 13h47

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