wackevat a écrit :
Impossible que ça plante à cause de la longueur de la ligne :
Code :
- Z:\>set LIGNE=Hello
- Z:\>if NOT "%LIGNE:~1,10%" == "CONNECTION" echo Hello
- Hello
|
ou encore :
Code :
- Z:\>set LIGNE=H
- Z:\>if "%LIGNE:~3,10%" == "CONNECTION" (echo Hello) else (echo Hi)
- Hi
|
Dans les deux exemples, les sous-chaînes extraites sont simplement vides.
A moins que tu aies les caractères spéciaux dans ton texte, et ça se trouve qu'ils sont dans une ligne courte. Là, effectivement, ça peut planter.
|
oui j'ai un caractère spécial dans la ligne car ma ligne vaut :
et là le test plante
Code :
- if NOT "%LIGNE:~1,10%" == "CONNECTION"
|
J'ai des " en début et fin de ligne car la ligne est lue dans un fichier :-(
Je pourrais faire un test spécial pour ce cas là mais c'est pas top comme programmation.
Code :
- if "%LIGNE:~1,1%" == " " goto PasserLigne
|
Est-ce que je pourrais éviter d'avoir des " quand je lis mes lignes dans le fichier en entrée? Ou une autre solution
EDIT : j'ai trouvé
set ligne = %~1
le ~ dans cette commande enlève les quotes qui entourent ma ligne.
le problème est que maintenant la commande
@ECHO %ligne% >> monfichierdesortie
inscrit ECHO IS ON dans le fichier si je traite une ligne qui contient un espace. Je crois donc que je vais utiliser un IF pour ne pas traiter ces ligne qui m'embettent.
Message édité par polo021 le 06-04-2006 à 09:48:32