1. #1
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    janvier 2003
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : janvier 2003
    Messages : 232
    Points : 248
    Points
    248

    Par défaut Appeler un script en direct et par lot

    Bonjour.

    J'ai un premier script que j'appelerai "single" qui effectue une tâche pour un seul objet. Ce script écrit log dans un fichier "out" comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    (single)
    traitement de Objet
    J'ai un deuxième script que j'appelerai "batch" qui fait simplement une boucle sur plusieurs objets à traiter et appelle le premier script "single" sur chacun d'eux. Dans le même fichier "out", il va insérer un horodatage au début et une ligne de marqueur à la fin, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (batch)
    DATE
    (single)
    traitement objet 1
    traitement objet 2
    traitement objet 3
    (batch)
    =======MARQUEUR=====

    J'appelle parfois le script "batch" quand j'ai plusieurs objets à traiter, mais parfois je n'ai qu'un seul objet à traiter et j'appelle donc "single" à la place. Mais voilà, dans le fichier de sortie, je n'ai ni la date ni un marqueur de fin quand je fais appel à single, donc je me retrouve avec un fichier où parfois j'ai les marqueurs et parfois pas :

    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
    (batch)
    DATE
    (single)
    traitement objet 1
    traitement objet 2
    traitement objet 3
    (batch)
    =======MARQUEUR=====
    (single)
    traitement objet 
    (single)
    traitement objet 
    (single)
    traitement objet 
    (batch)
    DATE
    (single)
    traitement objet 1
    traitement objet 2
    traitement objet 3
    (batch)
    =======MARQUEUR=====

    Comment faire pour que single insère lui aussi un marqueur et une date quand il est appelé directement MAIS PAS quand il est appelé depuis batch ? est-ce que single devrait vérifier une variable avant d'afficher le marqueur de début et de fin ? ou y a-t-il mieux comme soluce ?

  2. #2
    Expert éminent Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 3 108
    Points : 7 270
    Points
    7 270

    Par défaut

    Bonjour :-)

    Euh pardon, mais, est-ce que tu n'es pas en train de te noyer dans un verre d'eau ?

    Pourquoi n'encapsules-tu pas ton script single dans script super_single qui fait la chose suivante ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    afficher date
    executer single
    afficher marqueur de fin
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
    Votre problème est résolu ? Cliquez sur en bas de page.

    Linux, grep/sed/awk/xml... et autres fichiers plats, Java, C++

  3. #3
    Membre actif
    Profil pro
    Développeur informatique
    Inscrit en
    janvier 2003
    Messages
    232
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : janvier 2003
    Messages : 232
    Points : 248
    Points
    248

    Par défaut

    Bonjour Flodelarab

    Le code que tu viens de donner est celui de batch ! il fait office de super_single. Celui-ci marche bien comme je veux, c'est single qui ne marche pas comme je veux (pas d'hordatage ni de marqueur dans single).

    A moins... A moins que j'appelle batch même pour un seul objet ?

  4. #4
    Expert éminent Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    septembre 2005
    Messages
    3 108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : septembre 2005
    Messages : 3 108
    Points : 7 270
    Points
    7 270

    Par défaut

    Le code que tu viens de donner est celui de batch !
    Non car le marqueur n'est pas le même quand tu fais un traitement par lot, que quand tu fais un traitement unitaire.

    A moins que j'appelle batch même pour un seul objet ?
    Non, pas batch (traitement par lot). Mais un script qui encapsule un traitement unitaire.

    Comment faire pour que single insère lui aussi un marqueur et une date quand il est appelé directement MAIS PAS quand il est appelé depuis batch ?
    C'est là qu'est la faute de raisonnement.
    Tu vas trop loin et tu viens demander une méthode pour revenir en arrière.
    Affiche correctement dès le début. Et plus de soucis.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.
    Votre problème est résolu ? Cliquez sur en bas de page.

    Linux, grep/sed/awk/xml... et autres fichiers plats, Java, C++

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 17/02/2018, 17h47
  2. photoshop conversion par lot (script) en jpg
    Par mic84 dans le forum Imagerie
    Réponses: 1
    Dernier message: 27/11/2011, 12h46
  3. [MiRc] Script de transfert par lots
    Par tiger33 dans le forum IRC / mIRC
    Réponses: 12
    Dernier message: 16/01/2008, 11h52
  4. [sybase] Suppression de tables par lot
    Par Higgins dans le forum Sybase
    Réponses: 2
    Dernier message: 30/09/2004, 16h42
  5. Réponses: 1
    Dernier message: 04/06/2003, 11h48

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