Menu

Comment trouver une chaîne de caractère que l'on ne connaît avec un fichier .bat [Résolu]

-
Bonjour,

Cela fait depuis un long moment que je bloque sur la création d'un fichier batch qui va me permettre de trouver un nombre (de 10 caractères) que je ne connaît pas.

J'ai un fichier log avec beaucoup de texte dedans et je suis à la recherche d'un nombre dans tous ce tintouin.

Je sais que je dois utiliser une boucle "for" mais je ne sais pas comment chercher une valeur que je connais pas.

Je sais pas si je suis assez claire dans mon explication en espérant que vous êtes plus doué que moi.

Merci.
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
25788
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 juin 2019
1665
1
Merci
Bonjour,

Plutot que de le faire en batch, je le ferai en VBScript via une regex
https://www.robvanderwoude.com/vbstech_regexp.php

Le pattern à utilisant ressemblant à (\d{10})

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 43895 internautes nous ont dit merci ce mois-ci

Bonjour jordane,

J'aimerais pouvoir le faire en batch avant d'essayer sur un autre type de programmation.
jordane45
Messages postés
25788
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 juin 2019
1665 > Unstagiaire -
en bash il existe le findstr
https://www.windows-commandline.com/findstr-command-examples-regular/
un truc du genre
findstr /r "^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$"  tonfichiertext.txt

https://www.computerhope.com/issues/ch001102.htm
Tu me donnes une bonne piste merci vais voir ce que je peux en faire
Commenter la réponse de jordane45
0
Merci
@echo off
set chemin=(ici j'ai mis le chemin pour trouver mon fichier)

for /f "delims= " %%i in (%chemin%) do (
findstr /r "[^0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]$"
)
pause

J'ai besoin de savoir il y a une erreur dans ce programme ?

Il m'indique cette erreur que faire ?

"CMD.EXE a été démarré avec le chemin d’accès comme répertoire en
cours. Les chemins d’accès UNC ne sont pas prise en charge. Utilisation
du répertoire Windows par défaut."
La commande cd ne marche pas car le chemin est sur un serveur donc elle ne marche pas
jordane45
Messages postés
25788
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 juin 2019
1665 > Unstagiaire -
Ah..ben si tu ne donnes pas toutes les infos...
Oui désolé première fois que j'ouvre un forum...
Au lieu de CD tu peux utiliser PUSHD pour un chemin UNC
D'accord merci vais mettre ça alors
Commenter la réponse de Unstagiaire
0
Merci
Alors j'ai réussi à bien avancer j'arrive à sortir que les lignes avec un nombre de 10 caractères, avec ce programme :
@echo off
pushd (chemin du dossier)

for /f "delims=" %%i in (monfichier.log) do (
findstr /r "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" monfichier.log
echo Purge du dossier !%%i!
pause
)

Cependant cela m'affiche toute la ligne, alors comment faire pour avoir juste le numéro ?

Exemple :

La purge du dossier XXXXXXXXXX (ici c'est le nombre que je veux extraire) s'est correctement dÚroulÚe

Donc j'aimerais enlever ce qu'il y a avant et après le XXXXXXXXXX.

Merci d'avance de votre aide.
Commenter la réponse de Unstagiaire