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 :

Variables dans une Variable ?


Sujet :

Scripts/Batch

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut Variables dans une Variable ?
    Bien le bonjour !

    J'ai besoin de votre aide pour m'éclaircir sur ce point :


    J'aimerais mettre une variable dans une variable, et pour mieux vous expliquer voici le code que j'aimerais faire fonctionner :

    set /a testdebut=1
    set /a testfin=2

    set /p mottiftotal=%testdebut%%testfin%ication (ici je rajoute "ication" à la variable et j'aimerais que cette nouvelle variable soit donc "12ication")
    echo %mottiftotal%

    set /p 31=%testdebut%a
    echo %31% (ici j'aimerais que la variable soit "1a")

    Ce n'est pas très clair mais le principe est simple pourtant ... Et j'aimerais éviter de faire un fichier texte externe pour extraire des variables et les récupérer ...

    Avez-vous une solution ? Merci d'avance !

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 12
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    set testdebut=1
    set testfin=2
    
    set motiftotal=%testdebut%%testfin%ication
    echo %motiftotal%
    
    set test=%testdebut%a
    echo %test%
    Il te suffit d'enlever les /a et /p.
    SET /A pour une expression numérique, par exemple 2+2 4*4 etc ...
    SET /P quand tu veux définir ta variable manuellement.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Merci !

    Effectivement c'est encore plus bête que je ne le pensais ... Vraiment merci ! Mais j'ai une deuxième question, moins évidente à mon goût :

    J'aimerais recomposer le nom d'une variable grâce à d'autres variables... Voici mon exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    set morceau1=mi
    set mi8=20
    
    set /a resultat=%morceau1%8+1 (je veux lui dire "mi8")
    echo %resultat%  (j'aimerais que le résultat soit donc 21)

    Es-ce que cela est possible ? Merci d'avance de vos réponses !

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Par défaut
    Bonjour
    ton code fonctionne, quel est le problème ?

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Ha oui effectivement,

    Je me suis mal exprimé, en fait j'aimerais que quand j'écris le code ci-dessous qu'il comprenne que se soit la variable "mi8" qui prenne +1 et non la variable "resultat".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set /a resultat=%morceau1%8+1
    Voilà pourquoi je parle de reconstitution. En gros j'aimerais faire ce genre de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set /a %morceau1%8 = %%morceau1%8% +1
    Et dans le même genre pouvoir écrire ceci et qu'il me sorte "21".
    Est-ce possible ? Merci d'avance de vos réponses !

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2008
    Messages : 240
    Par défaut
    Ben j'ai rien compris, je laisse d'autres te répondre
    Bon courage

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 12
    Par défaut
    Personnellement, je comprends RIEN non plus ...

    Que veux-tu faire exactement ?

    Quel intérêt de créer une variable MI pour la coller à une autre variable ?

    J'essaie de comprendre mais c'est compliqué ...

    Tu veux créer un début d'une variable puis y coller une seconde variable ?

    Pourquoi créer 2 variable ?

    %morceau1%8 est différent de %mi8% ...

    Je laisse tomber, c'est trop le bordel, où alors, explique CORRECTEMENT et en détails ce que tu veux faire exactement dans ton script.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Bon, je vais prendre un autre exemple :

    Voilà un bout de code qui me sert de test :

    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
    set tank8=4
    
    set /p reponse=???  (ici je met "tank" en réponse)
    
    set variable1=1
    
    set /a %reponse%8=%reponse%8+1
    
    echo %tank8%
    
    pause
    
    set variable5=5
    
    if %reponse%8 EQU %variable5% echo test1
    if %variable5% EQU %variable5% echo test2
    
    pause
    Tout fonctionne dans ce code sauf la ligne ci-dessous car le "if" ne veut pas comprendre que "%reponse%8" correspond a "%tank8%" !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if %reponse%8 EQU %variable5% echo test1
    Pourquoi ma variable que je recompose fonctionne ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set /a %reponse%8=%reponse%8+1
    et pas là ??? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if %reponse%8 EQU %variable5% echo test1
    M'avez-vous bien compris ??

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 12
    Par défaut
    Ça c'est logique, car %reponse% c'est du texte et il ne peut pas vérifier si %reponse%8 = 5 car %reponse% c'est "tank".

    Dans cette ligne : if %reponse%8 EQU %variable5% echo test1
    tu dois remplacer %reponse%8 par %tank8%, car c'est elle ta variable numérique.

    Ensuite, pourquoi ça fonctionne avec la ligne :
    set /a %reponse%8=%reponse%8+1

    Tout simplement car il connait une variable %reponse%8 si %reponse% = tank.

    Regarde ta fenêtre MSDOS :
    ...
    >set tank8=4
    >set /p reponse=tank
    >set variable1=1
    >set /a tank8=tank8+1
    >echo 5
    ...


    Tu dois faire ta vérification sur %tank8% et non sur %reponse%8.
    Si tu marque autre chose que tank, rien ne va fonctionner.
    Entre le = et le + il te faut une variable qui existe.

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 10
    Par défaut
    Okay, très bien. Merci pour cette réponse !

    Mais il n'y a vraiment aucun moyen de faire un "if" avec un "%reponse%8" qui corresponde donc à %tank8% ? Tout mon programme est basé sur cela ... Si vous voulez voir la tête de mon programme, c'est par là : http://www.megaupload.com/?d=D4Y4G3DC

    Merci de votrr réponse.

Discussions similaires

  1. Introduire une variable dans une variable
    Par benramin31 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 17/02/2012, 11h30
  2. Recuperer le nom d'une variable dans une variable String
    Par aliwassem dans le forum Langage
    Réponses: 11
    Dernier message: 23/10/2009, 12h38
  3. Réponses: 3
    Dernier message: 26/09/2008, 10h41
  4. Comment completer une variable dans une PROC
    Par Le Basque dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/09/2004, 17h18
  5. [langage] trouver une variable dans une autre
    Par BEAUJAULT dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2004, 15h04

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