IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Mettre en évidence une recherche [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Points : 76
    Points
    76
    Par défaut Mettre en évidence une recherche
    Bonjour les développeurs

    Voici un script qui me sert à faire une recherche d'une personne, d'une adresse, d'un numéro de téléphone, d'un lien, d'une référence... dans des fichiers texte.

    Code Batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @echo off
    title %~nx0
    echo.
    set/p nom=Entrez un mot cl‚, une partie du mot ^>^> 
    for /f "tokens=* delims=" %%i in ('type *.txt ^| find /I "%nom%"') do echo. &echo %%i &pause > nul

    Je voudrais savoir comment mettre en évidence ( en surbrillance ) à l'aide d'une couleur le mot recherché dans chaque ligne, chaque phrase, chaque paragraphe affichés.

    Merci pour votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755

  3. #3
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Points : 76
    Points
    76
    Par défaut
    Bonjour ericlm128.

    Merci pour le lien.

    D'après ce que j'ai compris, la coloration se fait sur toute la ligne. Or je voudrais que la coloration se fasse uniquement sur le mot.

    Je tape par exemple le mot odt

    Le batch cherche dans le fichier.txt et affiche le paragraphe qui contient le mot odt mais en couleur

    Extensions de fichiers valides: 7z as asm asp aspx bz2 c cpp cs css diff doc docx fla gif gz h hpp htm html java jpeg jpg js ods odt pas patch pdf php pl png psd py rar sql swf tar tex txt vb wdc wde wdg wdl wdp wdw xls xlsm xlsx xml xsd xsl xslt zip

    Lorsque j'appuie sur ENTREE, un autre paragraphe qui contient odt s'affiche

    Le format ODT est le format de documents par défaut de la suite bureautique OpenOffice. Or si vous avez Word, vous ne pouvez pas ouvrir de fichiers dans ce format. Il existe toutefois un utilitaire gratuit qui va vous permettre de convertir des documents ODT d'OpenOffice au format DOC d'Office. Vous pourrez ainsi les ouvrir et les lire sans problème.



    J'ai des batchs qui colorisent des textes. Ceux-là ont besoin d'un programme externe tel que batbox.exe, bcolor.exe, cecho.exe, cechoj.exe, chgcolor.exe, cmdcolor.exe, colous.exe, NTStreamColor.exe, textcolor.exe, txtcolor.exe.

  4. #4
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Points : 76
    Points
    76
    Par défaut
    Bonjour les développeurs.

    Le script qui met en évidence une recherche a été résolu par Flammrock un des membres de developpez.net

    Voici le lien:

    https://batch.xoo.it/t6499-Mettre-en...-et-trouve.htm

    Merci à tous. Bonne journée, bonne santé et a+ peut-être.

  5. #5
    Membre éprouvé
    Femme Profil pro
    ..
    Inscrit en
    Décembre 2019
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 94
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : Décembre 2019
    Messages : 562
    Points : 1 253
    Points
    1 253
    Par défaut
    Salut,

    Si ça peut t'être utile, je me rappelle d'un terminal de surveillance (monitoring) en temps réel où les informations pertinentes étaient mises en surbrillance grâce à sed et ntstreamcolor. Quand j'ai lu ton message ça a fait tilt. Une ligne comme type ... | sed "s#mot#??mot??#g" | ntstreamcolor devrait suffire pour ton besoin. Les deux points d’interrogations c'est parce que je ne connais pas les codes pour ntstreamcolor. Il y a aussi grep, mais il faut windows 10. Tu peux trouver ces commandes dans une distribution mingit (git for windows) par exemple.

  6. #6
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Points : 76
    Points
    76
    Par défaut
    Bonjour kaitlyn. Merci de m'avoir suggéré NTStreamColor. Mais je crois qu'il colorie toute la ligne.

    Voici le lien en question:

    https://www.developpez.net/forums/d1...ntstreamcolor/



    À propos de NTStreamColor

    Vous voilà en possession de la nouvelle version enrichie de NTStreamColor. D'un simple module d'illustration à maintenant un utilitaire à part entière, c'est tout naturellement qu'il intègre les outils et scripts NTMaxTools.

    Ses fonctionnalités principales sont la coloration syntaxique et la possibilité de se déplacer dans la console. La manière dont il a été conçu rend son potentiel d'évolution simple et rapide à mettre en oeuvre. Les quelques exemples fournis donnent un aperçu de son utilisation qui se veut simple et intuitive, assorti d'une prise en main normalement rapide.

    Voici une très brève explication des commandes ou flux d'instructions pris en charge par NTStreamColor :

    -> La couleur :

    Pour sélectionner ou utiliser une couleur, il faut savoir que NTStreamColor utilise les mêmes codes de couleurs que la commande interne «color». Pour plus d'information sur cette dernière, tapez «color /?» dans une invite de commande.

    0 = Noir 8 = Gris
    1 = Bleu foncé 9 = Bleu clair
    2 = Vert A = Vert clair
    3 = Bleu-gris B = Cyan
    4 = Marron C = Rouge
    5 = Pourpre D = Rose
    6 = Kaki E = Jaune
    7 = Gris clair F = Blanc

    Le code de couleur est constitué de 2 chiffres hexadécimaux parmi ceux présentés dans le tableau ci-dessus. Le premier chiffre correspond à la couleur de l'arrière-plan du champ courant, le second à la couleur du texte. En l'absence du premier, le fond est noir. NTStreamColor reçoit l'instruction de coloration entre crochets.

    exemple :

    début du texte [c]passage au rouge sur fond noir[/] retour à la couleur précédente

    -> Séquences d'échappement :

    NTStreamColor traduit les séquences d'échappement à barre oblique inversée dans un flux de texte et interprète des caractères ou comportements spéciaux.

    Dans un flux, les séquences suivantes représentent :

    \n : un saut de ligne
    \r : un retour chariot
    \a : un beep
    \b : un retour arrière avec effacement
    \t : une tabulation
    \xnn : un caractère sous sa représentation hexadécimal, où «n» peut prendre les valeurs de 0 à F.
    \unnnn : un caractère sous sa représentation Unicode



    -> Commandes étendues :

    .@Note: Les nombres à trois chiffres en exemple représentent un nombre xxx en base décimal

    commande curseur <l pour line, ligne> <c pour column, colonne> <_ pour symboliser le curseur>

    \_v : affiche le curseur <v pour visible>
    \_h : cache le curseur <h pour hidden>
    \_i : retour du curseur à son état de visibilité initial

    \l.001 : place de manière absolue le curseur à la "Ligne" indiquée par xxx
    \c.006 : place de manière absolue le curseur à la "Colonne" indiquée xxx

    \l+001 |
    \l-001 | le signe «.» peut être remplacé par les signes «+» et «-» pour demander
    \c+001 | un déplacement relatif par rapport à la position courante du curseur.
    \c-001 |

    \c+000 : si xxx=<+>000, déplacement du curseur à la fin de la ligne
    \c-000 : si xxx=<->000, déplacement du curseur au début de la ligne, équivaut à \r et \c.000

    commande complete <+ pour add>
    \+001 : répète la dernière lettre autant de fois qu'indiqué par xxx
    \+000 : répète la dernière lettre jusqu'à la fin de la ligne si xxx=000

    commande wait <w pour wait>
    \w.001 : attente passive pendant xxx millisecondes
    \ws001 : attente passive pendant xxx secondes
    \wm001 : attente passive pendant xxx minutes


    Merci kaitlyn. Bonne journée. Bonne santé et a+ peut-être.

  7. #7
    Membre éprouvé
    Femme Profil pro
    ..
    Inscrit en
    Décembre 2019
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 94
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : Décembre 2019
    Messages : 562
    Points : 1 253
    Points
    1 253
    Par défaut
    Ok, donc si tu veux que mot s'affiche en rouge, comme écrit dans l'exemple,
    alors il faut utiliser le code couleur [c], ce qui donne la chaîne de commandes :
    type ... | sed "s#mot#[c]mot[/]#g" | ntstreamcolor

  8. #8
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2015
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2015
    Messages : 126
    Points : 76
    Points
    76
    Par défaut
    Bonsoir kaitlyn

    C'est très gentil de ta part de me venir en aide, mais je n'ai pas envie d'utiliser le programme externe NTStreamColor.exe (15 Ko) que j'ai déjà cité plus haut.

    J'ai des batchs qui colorisent des textes. Ceux-là ont besoin d'un programme externe tel que batbox.exe, bcolor.exe, cecho.exe, cechoj.exe, chgcolor.exe, cmdcolor.exe, colous.exe, NTStreamColor.exe, textcolor.exe, txtcolor.exe.
    Le script est résolu.

    Si cela t'intéresse, voici le lien que j'ai déjà donné plus haut.

    https://batch.xoo.it/t6499-Mettre-en...-et-trouve.htm

    Bonne soirée. Bonne santé et a+ peut-être ma chère kaitlyn.

  9. #9
    Membre éprouvé
    Femme Profil pro
    ..
    Inscrit en
    Décembre 2019
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 94
    Localisation : Autre

    Informations professionnelles :
    Activité : ..

    Informations forums :
    Inscription : Décembre 2019
    Messages : 562
    Points : 1 253
    Points
    1 253
    Par défaut
    En fait c'est parce qu'il était dans ta liste d'outils que son association avec sed.exe avait fait tilt, d'où mon premier message. Je n'avais pas compris que tu ne voulais pas utiliser de commandes externes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Mettre en évidence une série d'un graphique
    Par Dim33 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/07/2013, 22h47
  2. Mettre en place une recherche
    Par solorac dans le forum Langage
    Réponses: 2
    Dernier message: 10/11/2011, 11h04
  3. Réponses: 3
    Dernier message: 10/08/2011, 10h17
  4. [RegEx] Mettre en évidence le résultat d'une recherche
    Par s-c-a-r-a dans le forum Langage
    Réponses: 8
    Dernier message: 01/10/2007, 07h03
  5. mettre en évidence le résultat d'une requête
    Par mussara dans le forum Langage
    Réponses: 5
    Dernier message: 21/06/2006, 17h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo