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

Signaler
-
 Unstagiaire -
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.

3 réponses

Messages postés
28895
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2020
2 598
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})

1
Merci

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

CCM 63389 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.
Messages postés
28895
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2020
2 598 > 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
@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
Messages postés
28895
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2020
2 598 > 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
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.