Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1331 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [DOS] Variables et conditions IF pour commande GREP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[DOS] Variables et conditions IF pour commande GREP

n°1473622
wizdom
Posté le 10-11-2006 à 17:10:55  profilanswer
 

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 :
  1. chaine_ko="ORA-"
  2. traitement_ko=`grep -c "$chaine_ko" monfichier.log`
  3. if [ "$traitement_ko" -gt 0 ]
  4. then
  5.       print "Erreur import monfichier" >> $check_erreur.txt
  6. 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 :
  1. @echo off
  2. set t=grep -c "ORA-" monfichier.log
  3. @if t == 0 goto end
  4. @if t == 1 goto chaineko
  5. :chaineko
  6. echo ERREUR !
  7. :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

mood
Publicité
Posté le 10-11-2006 à 17:10:55  profilanswer
 

n°1473705
wackevat
Posté le 10-11-2006 à 19:20:02  profilanswer
 

Sous DOS ou le batch Windows ? Il y a beaucoup de différences, même si ce n'est pas le cas dans cet exemple.
 
Renseigne-toi sur ErrorLevel.
 
La syntaxe :
set VAR=commande
n'existe pas.
 
Dans ton cas, t sera une valeur chaîne. Fais :
echo %t%
pour comprendre.
 

n°1473762
wizdom
Posté le 10-11-2006 à 22:41:47  profilanswer
 

Pardon, Batch Windows en fait.
 
Oui sinon j'avais bien compris :
 
"Mais evidemment ca ne marche pas, car la variable t prend comme valeur "grep -c "ORA-" monfichier.log" au lieu de O ou 1 ... "

n°1473800
wackevat
Posté le 11-11-2006 à 06:13:19  profilanswer
 

wizdom a écrit :


Oui sinon j'avais bien compris :
 
"Mais evidemment ca ne marche pas, car la variable t prend comme valeur "grep -c "ORA-" monfichier.log" au lieu de O ou 1 ... "


Désolée d'avoir zappé ce passage.
 
Mais tu as zappé aussi ma deuxième ligne. :D

n°1473863
wizdom
Posté le 11-11-2006 à 12:22:09  profilanswer
 


Oui, le Errorlevel ?  
 
Ben non ca ne sert qu'à récuperer des codes d'erreurs.
 
Par exemple :
 
grep -c "ORA-" toto.txt
echo %ERRORLEVEL%
 
Si toto.txt existe, je récupère la valeur 0 avec le Errorlevel.
Si toto.txt n'existe pas je récupère la valeur 2.
 
Mais en aucun cas le errorlevel me renvoi le contenu du résultat de la commande grep...
 
Hélas :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [DOS] Variables et conditions IF pour commande GREP

 

Sujets relatifs
[BATCH]Changer mode de compatibilité en ligne de commande[DOS] Syntaxe incorrecte....... pourquoi?
'ftp' n'est pas reconnu en tant que commande interne...[SQL] insert avec conditions
Mise en place du MVC sur un site : problème de visibilité de variablesQuestion à propos de la commande ipconfig > c:\test.txt
Iprimante USB et Application DOSExecution de commande
[PERL] [Debutant] Commande shell source en perl[BO] Création de conditions prédéfinies personnelles sous WEBI
Plus de sujets relatifs à : [DOS] Variables et conditions IF pour commande GREP


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR