Commande DOS: findstr sur une variable

[Fermé]
Signaler
Messages postés
12
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
18 octobre 2011
-
 Ryg -
Bonjour,

je voudrais lancer sous DOS une commande findstr sur une variable et non un fichier:


J'ai essayé:

echo %variable% ^|findstr /i /r "caractere_string" do (IF ERRORLEVEL 1 (echo oui) else (echo non))

J'ai trouvé aussi ce site: https://www.developpez.net/forums/d668443/general-developpement/programmation-systeme/windows/scripts-batch/batch-findstr-variable/
mais ça ne marche pas


qnn a une idée?

merci d'avance

2 réponses

Messages postés
12
Date d'inscription
mardi 30 juin 2009
Statut
Membre
Dernière intervention
18 octobre 2011
4
en fait j'ai trouvé:

je réponds à ma propre question:

il faut écrire

echo %rep% |FINDSTR /C:\ & if %errorlevel% EQU 0 (echo oui) else (echo non)

echo %rep% |FINDSTR /C:"a" & if %errorlevel% EQU 0 (echo oui) else (echo non)


Je ne comprenais pas pourquoi ça ne marchait pas, parce que lorsque l'on cherche un caractère quelconque entre a à z, il faut le mettre en guillement. Par contre, si vous cherchez le caractère \, il ne faut pas mettre de guillemet.

subtil....

si ça peut aider des gens.
voilà

merci de votre aide: le simple fait d'énoncer le problème devant vous m'a permit de trouver la solution: principe même de la psychanalyse...
++
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Lorsqu'on introduit un \, pris en tant que caractère, c'est à dire sans guillemets, il est pris tel quel. Par contre, entre guillemets, le \ introduit un code d'échappement, pour annuler l'effet, il faut donc le doubler.

Vous auriez donc pu écrire :

echo %rep% |FINDSTR /C:"\\" & if %errorlevel% EQU 0 (echo oui) else (echo non)