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 :

Echange et modification de variables entre deux batchs


Sujet :

Scripts/Batch

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 140
    Points : 61
    Points
    61
    Par défaut Echange et modification de variables entre deux batchs
    Bonsoir, quelles sont les commandes qui permettent à deux batchs de se passer des variables et d'en modifier?

    par exemple:
    mon batch "1", contient une variable qui se nomme %nom%, comment faire pour récupérer cette variable avec la batch "2" (sans passer par un fichier texte) et si possible, comment à partir du batch "2", modifier cette variable (et qu'elle reste modifiée dans le batch "1")?

    merci

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Pour la première partie, il suffit de mettre ta variable comme argument lors de l'appel du second batch.
    Par contre, pour le retour, c'est plus difficile : soit il te faut modifier une variable d'environnement globale pour qu'elle "survive" au 2ème batch et soit alors visible dans le premier, soit il te faudra passer par un fichier.
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  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,

    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
    @echo off
    
    :: Création du second batch "$b.cmd" 
    If not exist $b.Cmd (echo set %%1=%%~nx0 > $b.cmd)
    
    :: Initialisation de la variable "$MaVar"
    set $MaVar=%~nx0
    
    :: On teste la variable
    set $MaVar 
    
    :: On appel "$b.Cmd" et on lui envoie le nom de la variable Comme paramètre
    Call $b.cmd $MaVar
    
    :: On re-teste la variable "$MaVar"
    set $MaVar
    
    :: Suppression du second batch "$b.Cmd"
    del $b.Cmd
    pause
    ou plus simple:

    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
    @echo off
    
    :: Création du second batch "$b.cmd" 
    If not exist $b.Cmd (echo set $MaVar=%%~nx0 > $b.cmd)
    
    :: Initialisation de la variable "$MaVar"
    set $MaVar=%~nx0
    
    :: On teste la variable
    set $MaVar 
    
    :: On appel "$b.Cmd"
    Call $b.cmd
    
    :: On re-teste la variable "$MaVar"
    set $MaVar
    
    :: Suppression du second batch "$b.Cmd"
    del $b.Cmd
    pause

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 140
    Points : 61
    Points
    61
    Par défaut
    salut et merci a tous les deux,
    I'm_HERE: je n'ai pas bien compris ton batch, pourquoi faut il créer un fichier cmd? Mais je te remercie de m'avoir répondu =D

    au cas ou tu n'aurais pas compris, j'ai un batch, on va l'appeler Batch1. Dans ce batch,il y a:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @echo off
    
    :NOM
    cls
    echo.
    echo   Quel est ton nom?
    echo.
    set /p NOM=
    echo   Bonjour %NOM%
    pause>nul
    exit
    et donc, j'aimerais bien pouvoir récupérer la variable %NOM% (et son contenu) pour l'utiliser dans la batch2.

    Tu comprends?

    Merci

    PS: désolé, ma question de départ était pas très claire...

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    Salut,
    Mac LAK, t'a répondu. Pour mémoriser la variable il faut, par exemple, utiliser Reg.exe.

  6. #6
    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,

    et pourtant, les deux exemples font exactement ce que tu veux, mais je croix que c'est de ma faute car il fallait commenter les 2 codes..

    alors, on va recommencer:
    la création de deux fichiers "Cmd" n'est ici que pour l'exemple seulement, tu pouvait faire par exemple ceci:


    on va créer un premier fichier de commandes:

    [/i]ton_premier_batch.bat[/i]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    :NOM
    cls
    echo.
    echo   Quel est ton nom?
    echo.
    set /p NOM=
    echo  La premiere valeur: [%NOM%]
    :: On appel le second batch et on lui assigne comme
    :: paramètre le nom de ta variable ici c'est "NOM"
    Call ton_second_batch.bat NOM
    echo  La nouvelle valeur: [%NOM%]
    pause>nul
    exit
    et un second batch:

    ton_second_batch.bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    :: On écrase la première valeur et on ajoute une autre
    Set %1=4E4557

    voici un autre exemple:

    On créer deux fichiers de commandes "exemple2.bat" et "identity.bat"

    exemple2.bat va initialiser tes variables et identity.bat va assigner les nouvelles valeurs à tes variables

    exemple2.bat
    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
    @echo off
    
    set /p Nom=Nom %
    set /p Region=Region %
    Set /p age=Age %
    
    :: affichage des variables avant l'appel du second batch
    echo.
    echo NOM:  %Nom%
    echo REGION: %Region%
    echo AGE: %age%
    
    echo.
    Call identity.bat Nom Region age
    echo.
    
    :: affichage des variables après l'appel du second batch  
    echo NOM: %Nom%
    echo REGION: %Region%
    echo AGE: %age%
    
    pause

    identity.bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    :: %1=Nom  %2=Region  %3=age
    ::
    Set %1=57414C4944
    Set %2=4D414E4F554241
    Set %3=3330
    ::
    :: // autre code ici //

Discussions similaires

  1. Variables entre deux GUI
    Par AsmaHaj dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 26/03/2007, 09h37
  2. passage de variable entre deux swf
    Par scorpion.os dans le forum Flash
    Réponses: 6
    Dernier message: 29/01/2007, 13h32
  3. variable entre deux champs
    Par valaidnew dans le forum ASP
    Réponses: 6
    Dernier message: 09/02/2006, 11h39
  4. [vector] Partager une même variable entre deux objets.
    Par Ekinoks dans le forum SL & STL
    Réponses: 18
    Dernier message: 25/08/2005, 20h40
  5. Passer une variable entre deux fenêtres
    Par DeezerD dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/08/2005, 09h52

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