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