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 :

Affichage d'une variable sur plusieurs digits [Batch]


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 21
    Points : 22
    Points
    22
    Par défaut Affichage d'une variable sur plusieurs digits
    Bonjour,

    Je voudrais afficher en batch une variable sur plusieurs digits:

    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set var=1
    echo %var%
    m'affiche
    et je voudrais obtenir .


    Merci de votre aide.

  2. #2
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Je ne crois pas que ce soit possible directement
    Une solution est d'ajouter les quatre 0 devant et de tronquer ensuite à 4 caractères.

    Ce que tu peux généraliser avec une fonction du type (il y a certainement 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
    @echo off
    setlocal enabledelayedexpansion
    
    call :printVal 4 1
    
    goto :EOF
    
    :printVal
    for /L %%i in (1,1,%1) do set zero=0!zero!
    set var=%zero%%2
    set var=!var:~-%1!
    echo %var%
    goto :EOF
    Le premier argument de :printVal est le nombre de digit et le second le chiffre à afficher.
    Attention dans cette version si tu fais :printVal 2 1000 ta valeur 1000 sera tronquée, pour éviter cela il faut ajouter un test dans :printVal.
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 21
    Points : 22
    Points
    22
    Par défaut
    Je suis habitué aux scripts bash avec lesquels un simple printf %04d aurait suffit, mais en en batch ça devient toujours une grosse bidouille.

    En tous cas merci pour ton aide, ça répond pleinement à ma question.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 21
    Points : 22
    Points
    22
    Par défaut
    Je ne vois pas à quoi sert la ligne suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocal enabledelayedexpansion

  5. #5
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    A activer les expansions retardées de variables pour pouvoir utiliser les !variable! au lieu de %variable%

    Ici deux usages, la boucle qui construit les 0 (utilisation classique des !!) et la substitution avec le %1 (utilisation moins classique)
    Je ne réponds pas aux questions techniques par MP, le forum est là pour cela.

    La crypto c'est comme les flambys, une fois que tu as trouvé la languette tu as juste à tirer pour tout faire tomber.

    (\ _ /)
    (='.'=)
    Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2010
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 21
    Points : 22
    Points
    22
    Par défaut
    Merci.

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

Discussions similaires

  1. [DOM] Déclarer une variable sur plusieurs lignes
    Par fgallnii dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 28/10/2008, 15h32
  2. [Conception] Affichage d'une requete sur plusieurs tables
    Par djinko dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/04/2007, 14h43
  3. récupérer une variable sur plusieurs page
    Par mademoizel dans le forum ASP
    Réponses: 21
    Dernier message: 12/03/2007, 16h48
  4. Garder le nom d'une variable sur plusieurs pages
    Par leloup84 dans le forum Langage
    Réponses: 2
    Dernier message: 25/10/2006, 14h21
  5. Utilisation d'une variable sur plusieurs unités
    Par Yamaneko dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2003, 11h23

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