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

Windows Discussion :

Dos script


Sujet :

Windows

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 20
    Points : 16
    Points
    16
    Par défaut Dos script
    Il m' a été conseillé de deplacer ma question sur ce forum. J' epère qu' ici je trouverai quelc' un pour m' aider.

    La commande Sleep n' étant pas une commande dos, j' ai voulu écrire un script qui me permet de jouer ce role. Il marche presque bien mon script mais de temps en temps bloque et j ai me message d' erreur suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    
    Ungültige Zahl. Nummerische Konstanten sind entweder dezimale (17), 
    hexadezimale (0x11) oder oktale (021) Zahlen.
    Qui siginfie:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    
     Invalid number. Numeric constant are either decimal (17), 
    hexadecimale (0x11) oder octale (021) numbers.


    Pourquoi ?

    Voici le script en entier:


    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    
    @ECHO OFF 
    
    REM   can only  from  0 to  60 Sekunden be set 
    
    SET    limit=%1 
    
    REM   without  parameter 3 Sekunden default setting    
    IF   %limit%\==\ SET limit=3 
    
    ::extracts the second part from time 
      
    FOR   /f "tokens=1-3 delims=:" %%i in ("%time%") do set sec=%%k 
    
    FOR   /f "tokens=1-2 delims=," %%i in ("%sec%") do ( 
     set secUnit=%%i 
      
    ) 
    
    SET   tempsdepart=%secUnit% 
    
    :Recommencer 
    
    
    FOR   /f "tokens=1-3 delims=:" %%i in ("%time%") do set sec=%%k 
    
    FOR   /f "tokens=1-2 delims=," %%i in ("%sec%") do ( 
    set   secUnit=%%i 
      
    ) 
    
    SET     tempsfin=%secUnit% 
    
    SET    /A Testdp=%tempsdepart% + %limit% 
    
    :: avoids  tempsfin overlap of 60er seconds 
    
    IF    %Testdp% GEQ 60 (SET /A tempsdepart=%Testdp% - 60 
    SET   /A tempsfin=%tempsfin% + %limit%) 
    
    SET    /A tempscal=%tempsfin% - %tempsdepart% 
    
    
    IF    %tempscal% LSS %limit% GOTO Recommencer 
    
    
    :FIN 
    
    ECHO   tempsdepart : %tempsdepart% 
    ECHO   tempsfin : %tempsfin% 
    ECHO   tempscal : %tempscal%

    Merci de bien vouloir m' aider
    [/code]

  2. #2
    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
    D'aprés l'aide en ligne :
    Les valeurs numériques sont des nombres décimaux, à
    moins qu'ils ne soient préfixés par 0x pour les valeurs hexadécimales et 0
    pour la notation octale. Donc 0x12 est identique à 18 et à 022. Notez que la notation octale peut être confuse : 08 et 09 ne sont pas valides car 8 et 9 ne sont pas des nombres valides en notation octale.
    Je suis tombé sur le pb par hasard, je l'ai exécuté pas mal de fois sans rencontrer le msg d'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    set /A V=08-00
    set /A V=8-00
    echo %V%
    
    set /A V=07
    set /A V=08
    set /A V=09
    Tu peux ajouter /A pour chaque déclaration de variable étant donné que tu manipules des nombres.

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Je vous remercie,

    je vais essayer tout de suite.

    juflata

  4. #4
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    encore une fois merci Laurent Dardenne

    J' ai compris maintenant le probleme, bien que je ne sache pas encore comment le resoudre (car meme avec /A il persiste à juste titre toujours)

    Si vous avez une idée, aidez moi !!!!

    juflata.

  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
    Chaque valeur 08 ou 09 provient de l'extraction de la variable time. Donc dans ce cas pas de Set /A.
    L'ajout d'un test en alpha sur ce champ permettrais de le convertir correctement en numérique.
    QQ chose dans ce genre là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If '%secUnit%'=='08' Set /A %secUnit%=8&goto suite
    If '%secUnit%'=='09' Set /A %secUnit%=9
    :suite

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Merci,
    j ' etait justement en train d' essayer dans ce sens là.

    Mais j' avais fait plus compliqué

    Encore une fois merci.

  7. #7
    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
    Citation Envoyé par juflata
    Encore une fois merci.


    Peux-tu mettre résolu sur tes 2 posts ?

  8. #8
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Je le fais de suite

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

Discussions similaires

  1. Commande DOS Script
    Par Miistik dans le forum VBScript
    Réponses: 1
    Dernier message: 29/11/2012, 11h34
  2. [DOS] Script de copie
    Par Empty_body dans le forum Scripts/Batch
    Réponses: 7
    Dernier message: 01/03/2007, 09h21
  3. [DOS] Script de recherche puis suppression
    Par villegente dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 13/02/2007, 10h53
  4. [DOS] Script d'exécution de fichiers
    Par portu dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 05/06/2006, 13h40
  5. (MS DOS) Script de connections FTP
    Par Furius dans le forum Windows
    Réponses: 14
    Dernier message: 06/10/2005, 18h45

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