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 :

batch dos et etiquette externe [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 165
    Points : 90
    Points
    90
    Par défaut batch dos et etiquette externe
    Bonjour,

    est-ce que vous savez s'il est possible d'appeler directement l'étiquette d'un batch, depuis un autre batch ? Exemple test.bat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    :Ancre1
    echo coucou
    goto out
    
    :Ancre2
    echo salut
    goto out
    
    :out
    pause
    si cette commande existait, elle permettrait d'afficher "salut" avec qquechose comme

    cet essai renvoie cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Tentative non valide d'appel d'un nom de fichier de commandes en dehors du script de commandes.
    je ne trouve pas de mot-clés pertinents dans les recherches. Merci

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

    tu peux faire comme ceci:

    contenu de Cal.cmd
    ------------------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
    
    call lab.cmd 2
    call lab.cmd 3
    call lab.cmd 1
    
    pause
    contenu de lab.cmd
    ------------------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    goto :%1
    
    :1
    echo label 1
    goto:eof
    
    :2
    echo label 2
    goto:eof
    
    :3
    echo label 3
    goto:eof

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 165
    Points : 90
    Points
    90
    Par défaut
    Salut,

    super, ça correspond parfaitement à ce que je cherchais, merci I'm_HERE

    une question, le choix de l'extension .cmd est-il arbitraire ? j'ai essayé avec .bat ça a l'air de fonctionner aussi.

  4. #4
    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
    effectivement le choix est arbitraire
    cependant, l'extension cmd n'est pas reconnu dans les "vieux" systems

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 165
    Points : 90
    Points
    90
    Par défaut
    ok merci encore

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 165
    Points : 90
    Points
    90
    Par défaut
    zut, par contre j'ai un souci avec un export de variable. J'utilise un batch initial qui ressemble à peu près à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    FOR %%A IN ("var1=var2=var3=var4=var5=var6=Extra"
    "var11=var12=var13=var14=var15=var16=var17"
    ...
    ) DO (FOR /F "tokens=1,2,3,4,5,6,7 delims==" %%i IN ('ECHO %%~A') DO (
    (ECHO :%%i 
    {(ECHO instructions diverses appelant %%j, %%k,...,%%o)>> Rapport.bat}
    )
    CALL "Chemin\Extra.bat" %%i_Extra))
    le fichier extra.bat contient à peu près ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    goto :%1
    
    :var1_Extra
    
    (ECHO.
    ECHO :%%iExtra
    ECHO {diverses instructions}) >> Rapport.bat
    
    goto:eof
    Logiquement il devrait copier dans Rapport.bat le contenu du tronçon délimité par le label %%i_Extra du fichier Extra.bat jusqu'à goto :eof. Et ce serait presque parfait mais l'ennui c'est qu'il n'interprète pas %%i de ECHO :%%iExtra, il le laisse tel quel... j'ai essayé avec deux, trois, quatre %, sans le : rien à faire. Y a-t-il un moyen de conserver cette variable, ou de l'exporter ?

    Merci

  7. #7
    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
    dans ton fichier de labels tu dois mettre %1 à la place de %%i parceque la variable %%i ne peut être interpréter que dans le contexte d'une boucle FOR

    exemple:

    golabel.bat
    -----------


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    for %%a In (var1 var2 var3 var4) do (call label.bat %%a)
    pause

    label.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
    24
    25
    26
    goto :%1
    
    :var1
    (
    echo :%1
    echo instructions1
    )>>rapport.bat
    goto:eof
    :var2
    (
    echo :%1
    echo instructions2
    )>>rapport.bat
    goto:eof
    :var3
    (
    echo :%1
    echo instructions3
    )>>rapport.bat
    goto:eof
    :var4
    (
    echo :%1
    echo instructions4
    )>>rapport.bat
    goto:eof

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 165
    Points : 90
    Points
    90
    Par défaut
    Je crois que c'est bon là Merci pour ton aide fort précieuse

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

Discussions similaires

  1. Batch Dos sous XP : créer un shared folder
    Par jeff37 dans le forum Windows XP
    Réponses: 2
    Dernier message: 06/03/2006, 10h27
  2. Sauvegarde par un batch dos
    Par faayy dans le forum Access
    Réponses: 24
    Dernier message: 22/06/2005, 21h12
  3. [BATCH-DOS] Sur quel forum poster ?
    Par Beaunico dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 17/09/2004, 18h30
  4. un batch DOS pour "nettoyer des fichiers" ?
    Par RoroMinator dans le forum Scripts/Batch
    Réponses: 9
    Dernier message: 12/02/2004, 16h24
  5. Réponses: 5
    Dernier message: 01/10/2003, 15h03

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