Comment trouver une chaîne de caractère que l'on ne connaît avec un fichier .bat
Résolu/Fermé
A voir également:
- 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.
- Fichier rar - Guide
- Fichier bat - Guide
- Caractère ascii - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
3 réponses
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
12 juin 2019 à 15:17
12 juin 2019 à 15:17
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})
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})
@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."
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."
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
13 juin 2019 à 11:38
13 juin 2019 à 11:38
Je ne comprend plus trop...
Dans ta question tu nous as indiqué :
Donc... A quoi sert cette boucle ?
Si tu cherches dans UN FICHIER .. la syntaxe c'est celle que je t'ai donné
et eventuellement, tu peux faire un CD dans ton Batch pour te placer dans le répertoire du fichier en question...
Dans ta question tu nous as indiqué :
J'ai un fichier log
Donc... A quoi sert cette boucle ?
Si tu cherches dans UN FICHIER .. la syntaxe c'est celle que je t'ai donné
findstr /R pattern filename.txt
et eventuellement, tu peux faire un CD dans ton Batch pour te placer dans le répertoire du fichier en question...
jordane45
Messages postés
38145
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
25 avril 2024
4 650
>
Unstagiaire
13 juin 2019 à 12:10
13 juin 2019 à 12:10
Pourquoi lire CHAQUE ligne ???
Le code que je t'ai donné regarde DIRECTEMENT dans le fichier ..... tout le fichier.....
Le code que je t'ai donné regarde DIRECTEMENT dans le fichier ..... tout le fichier.....
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.
@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.
12 juin 2019 à 15:19
J'aimerais pouvoir le faire en batch avant d'essayer sur un autre type de programmation.
12 juin 2019 à 15:27
https://www.windows-commandline.com/findstr-command-examples-regular/
un truc du genre
https://www.computerhope.com/issues/ch001102.htm
12 juin 2019 à 15:33