[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:
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:
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 :D