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 :

Comment vérifier présence d'une certaine chaîne de caractère dans une variable ? [Batch]


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Points : 6
    Points
    6
    Par défaut Comment vérifier présence d'une certaine chaîne de caractère dans une variable ?
    Bonjour,

    Je suis confronté à un problème car je souhaiterais réussir à ajouter une option telle que lorsqu'une certaine chaîne de caractère est rentré alors aller à un label. C'est assez compliqué à expliquer mais voilà le principe.
    En fait, si la personne mets dans la variable choix: 1 /random alors après avoir effectuer ce qui se trouve dans le label 1, aller au label Random et effectuer les actions. Or, je n'arrive pas à faire cela.
    On aurait donc: %choix%=1 /random
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    @echo off
    
    chcp 28591 > nul
    
    :menu
    cls
    
    set /p choix="Quelque chose à  dire ? "
    
    if %choix%==0 goto :0
    if %choix%==1 goto :1
    if %choix%==end goto :end
    
    goto :menu
    
    :0
    echo Tu as dit 0
    pause > nul
    goto :end
    
    :1
    echo Tu as dit 1
    pause > nul
    goto :end
    
    
    :Random
    cls
    echo %RANDOM%
    pause
    
    :end
    echo C'est la fin
    pause
    exit

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Finalement, je viens de trouver la solution sur un forum.

    Voici la solution:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    @echo off
    
    chcp 28591 > nul
    
    :menu
    cls
    
    set /p choix="Quelque chose à dire ? "
    
    echo %choix% | find "0" >nul && goto :0
    echo %choix% | find "1" >nul && goto :1
    if %choix%==end goto :end
    
    goto :menu
    
    :0
    echo Tu as dit 0
    echo %choix% | find "random" >nul && goto :Random
    pause > nul
    goto :end
    
    :1
    echo Tu as dit 1
    echo %choix% | find "random" >nul && goto :Random
    pause > nul
    goto :end
    
    
    :Random
    cls
    echo %RANDOM%
    pause
    
    :end
    echo C'est la fin
    pause
    exit

  3. #3
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    salut,

    pourquoi l'utilisation massive des finds qui rendent le code très lent, tu peux simplifier en ceci...enfin je crois:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    @echo off
    
    chcp 28591 > nul
    
    :menu
    cls
    
    set /p choix="Quelque chose à dire ? "
    
    set "choix=%choix: =%"
    if "%choix:/random=%"=="%choix%" (goto:%choix%) else goto:random
    goto :menu
    
    :0
    echo Tu as dit 0
    pause > nul
    goto :end
    
    :1
    echo Tu as dit 1
    pause > nul
    goto :end
    
    
    :Random
    cls
    echo %RANDOM%
    pause
    
    :end
    echo C'est la fin
    pause
    exit

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Mars 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Mars 2018
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonsoir,

    Je vous remercie pour votre réponse, cela fonctionne aussi.
    J'aimerais cependant avoir des explications sur cette commande, si possible:
    En fait, c'est surtout le =% à la fin du code qui me gène

    Merci d'avance

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

Discussions similaires

  1. [XL-2010] Recherche d'une sous-chaîne de caractères dans une cellule
    Par StephThai dans le forum Excel
    Réponses: 7
    Dernier message: 13/01/2014, 04h21
  2. Réponses: 7
    Dernier message: 30/06/2011, 00h40
  3. Réponses: 1
    Dernier message: 26/09/2010, 19h28
  4. Insérer une certaine chaîne de caractères dans MySQL
    Par laurentSc dans le forum Langage
    Réponses: 31
    Dernier message: 05/12/2009, 22h44
  5. Réponses: 3
    Dernier message: 09/05/2002, 01h39

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