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 :

formater un nombre avec batch/DOS


Sujet :

Scripts/Batch

  1. #1
    Membre averti Avatar de supernova
    Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    447
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 447
    Points : 415
    Points
    415
    Par défaut formater un nombre avec batch/DOS
    Bonjour le forum,

    Je tourne en rond depuis ce matin, sur un problème tout simple :

    dans un script dos, il me faut compter le nombre de caractères d'une chaine stockée dans une variable. Pour éventuellement la formater, typiquement je récupère l'heure système dans une variable avec la commande :

    le problème est lorsque il y a un seul caractère pour l'heure j'aimerai la formater avec un zéro devant : 9 devient 09. Je voulais faire une boucle pour avoir la longueur de la chaine et concaténer avec un zéro si besoin.

    y a t'il un solution ?? sans passer par du C ou autre bidouille

    merci d'avance
    Il est difficile d’attraper un chat noir dans une pièce sombre. Surtout lorsqu'il n’y est pas.

  2. #2
    Membre actif
    Avatar de mario52
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 131
    Points : 220
    Points
    220
    Par défaut
    Bonjour

    as tu essayé avec le commutateur /t ce que cela donne ?

    date /t

    time /t


    chez moi WinXp

    lun. 05/03/2007

    21:07

  3. #3
    Candidat au Club
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Janvier 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2017
    Messages : 2
    Points : 3
    Points
    3
    Par défaut formater un nombre en DOS
    rem --- recup du nombre passe en parametre
    set Montant=%1
    set Montant=#%Montant%
    set FZone=
    set n=0


    :FSuite
    rem -------- ajout d'un caractere indicant la fin du maskage
    if "%Montant%" == "#" goto :FMask
    set /a n=n+1
    set FZone=%Montant:~-1%%FZone%
    set Montant=%Montant:~,-1%
    rem ----------- pas de formatage s il y a deja un masque applique
    if "%Montant:~-1%" == " " set /A n=-1
    if "%Montant:~-1%" == "," set /A n=-1
    if "%Montant:~-1%" == "." set /A n=-1
    rem ------- ajout d un separateur des millier tous les trois car
    if "%n%" == "3" set FZone= %FZone%
    if "%n%" == "3" set /A n=0

    goto FSuite

    rem ------- nettoyage des variables en fin et varibale de retour %RES%
    :FMask
    Set Res=%Fzone%
    set FZone=
    Set Montant=
    set n=

  4. #4
    Candidat au Club
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Janvier 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2017
    Messages : 2
    Points : 3
    Points
    3
    Par défaut formatage de la date
    rem --------- recup de la date et heure du system AAAAMMJJHHMM

    Set Dte=%date:~6,4%%date:~3,2%%date:~0,2%%time:~0,2%%time:~3,2%%time:~6,2%
    rem ------------ Remplacement des espaces par 0
    SET Dte=%Dte: =0%

    rem resultat dans %Dte%

  5. #5
    Membre expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Points : 3 768
    Points
    3 768
    Par défaut
    si tu veux une solution generique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    for /F "skip=2 tokens=2 delims==" %%a IN ('wmic os get LocalDateTime /VALUE') do set "$all=%%a"
    
    echo %$all:~8,2%
    A partir de : Windows XP Professional

    ________________________________
    Un p'tit coup de pouce ça fait toujours plaisir, pensez-y !
    ________________________________

Discussions similaires

  1. Réponses: 8
    Dernier message: 27/10/2008, 16h52
  2. Réponses: 9
    Dernier message: 09/04/2008, 18h30
  3. Formater un nombre avec des séparateurs de milliers
    Par lagotonio dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/02/2007, 19h23
  4. Comment formater un nombre avec PHP
    Par loan33 dans le forum Langage
    Réponses: 5
    Dernier message: 27/10/2006, 08h41
  5. Formater un nombre avec Crystal Reports
    Par Soph70 dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 05/07/2005, 19h27

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