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 :

[DOS] Conversion shell en batch DOS


Sujet :

Scripts/Batch

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Août 2002
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 114
    Points : 133
    Points
    133
    Par défaut [DOS] Conversion shell en batch DOS
    Bonjour !

    J'ai actuellement un shell Unix qui me permet de déterminer si un import Oracle à fonctionné ou pas (en effectuant une recherche sur la chaine "ORA-" dans le fichier de log).

    En clair ca donne ca (dans le principe) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    chaine_ko="ORA-"
    traitement_ko=`grep -c "$chaine_ko" monfichier.log`
    if [ "$traitement_ko" -gt 0 ]
    then
          print "Erreur import monfichier" >> $check_erreur.txt 
    fi
    Avec cette commande GREP on peut faire des choses vraiment très sympa. Du coup j'ai réessayé de faire la meme chose sous DOS. J'ai d'abord cherché un équivalent à grep en version Windows, ce que j'ai trouvé ici :

    http://pages.interlog.com/~tcharron/grep.html

    Ca date un peu mais ca marche toujours très bien !

    La commande "grep -c "ORA-" monfichier.log" renvoi 0 si la chaine "ORA-" n'a pas été trouvée dans le fichier monfichier.log. Sinon elle renvoi le nombre d'occurences de la chaine "ORA-".

    Mais après je ne sais pas comment stocker ce résultat dans une variable DOS et tester sa valeur ?

    J'ai testé ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @echo off
    set t=grep -c "ORA-" monfichier.log
    @if t == 0 goto end
    @if t == 1 goto chaineko
    :chaineko
    echo ERREUR !
    
    :end
    Mais evidemment ca ne marche pas, car la variable t prend comme valeur "grep -c "ORA-" monfichier.log" au lieu de O ou 1 ...

    Donc si un pro du DOS pouvait me dire comment faire ca , ce serait vraiment super ! Toutes les bidouilles bilousiennes sont permises
    Oracle - Citrix CCA - Vmware

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Août 2002
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 114
    Points : 133
    Points
    133
    Par défaut
    La réponse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    grep -c "ORA-" monfichier.log > valeur.txt
    type valeur.txt | find "0"
    if errorlevel 1 goto PASOK
    
    :OK
    echo "Aucune erreur dans le fichier"
    goto end
    
    :PASOK
    echo "Il y a des erreurs dans le fichier"
    
    :END
    del valeur.txt
    Oracle - Citrix CCA - Vmware

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Je crois qu'avec ce qui suit, ça marchera mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @echo off
    for /f "tokens=1 delims=#" %%i in ('grep -c "ORA-" monfichier.log') do set t=%%i
    if %t% equ 0 goto :end
    if %t% equ 1 goto :chaineko
    
    :chaineko
    echo ERREUR !
    
    :end

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

Discussions similaires

  1. [Batch] Conversion shell vers batch
    Par trotters213 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 03/06/2010, 14h39
  2. Conversion d'une procédure du script shell vers le batch dos
    Par marlenjp dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 12/10/2006, 14h42
  3. [BATCH-DOS] Sur quel forum poster ?
    Par Beaunico dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 17/09/2004, 18h30
  4. un batch DOS pour "nettoyer des fichiers" ?
    Par RoroMinator dans le forum Scripts/Batch
    Réponses: 9
    Dernier message: 12/02/2004, 16h24
  5. Réponses: 5
    Dernier message: 01/10/2003, 15h03

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