[Batch] Tester une variable

Tester une variable [Batch] - Shell/Batch - Programmation

Marsh Posté le 29-06-2004 à 11:18:35    

Bonjour a tous,
 
je voudrais tester le contenu d'une variable, plus exactement la presence d'une chaine de caractere dans cette variable.
 
Je fais: echo %COMPUTERNAME% | find "chaine"
 
Il me renvoie soit la variable si il trouve la chaine, soit rien sinon, donc la ligne marche.
 
probleme comment exploiter ce retour?
 
Si il trouve la chaine je dois faire un goto :end sinon lancé des trucs. Et je vois pas comment faire.

Reply

Marsh Posté le 29-06-2004 à 11:18:35   

Reply

Marsh Posté le 29-06-2004 à 12:06:51    

utilise tout simplement if !

Reply

Marsh Posté le 29-06-2004 à 12:08:55    

archimed a écrit :

utilise tout simplement if !


 
J'y avais pensé ;), sauf que je vois pas comment lui dire de tester si la chaine est contenue la variable

Reply

Marsh Posté le 29-06-2004 à 12:12:23    

@echo off
echo %COMPUTERNAME% | find "chaine"
if %ERRORLEVEL% NEQ 0 goto end
echo salut :)
:end
echo end


La variable ERRORLEVEL prend une valeur non nulle lorsqu'une erreur est détectée. Dans ce cas, une erreur veut dire que FIND n'a pas trouvé "chaine" dans la variable COMPUTERNAME.


Message édité par m0rbac le 29-06-2004 à 12:29:54
Reply

Marsh Posté le 29-06-2004 à 13:11:24    

m0rbac a écrit :

Code :
  1. echo %COMPUTERNAME% | find "chaine"
  2. if %ERRORLEVEL% EQU 1 goto end
  3. echo test
  4. :end
  5. echo end


La variable ERRORLEVEL prend une valeur non nulle lorsqu'une erreur est détectée. Dans ce cas alors ça veut dire que FIND n'a pas trouvé "chaine" dans la variable COMPUTERNAME.


 
Merci, j'y avais pensé, mais j'arrivais pas a trouver les codes retour de find...thanks

Reply

Marsh Posté le 29-06-2004 à 14:23:14    

if not errorlevel goto end
marche très bien également...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed