Conversions en octal pour les valeurs 08 et 09

heyel Messages postés 8 Statut Membre -  
heyel Messages postés 8 Statut Membre -
Bonjour,

voici le code que j'utilise :

Une bonne âme pourrait me donner la modification à réaliser pour ne plus avoir le code erreur "Nombre non valide. Les constantes numériques doivent être soit décimales <17>, soit hexadécimales <0x11>, soit octales <021>..." ?

Merci d'avance

@echo off
set temps_pause=5
echo test de pause : le temps de pause est ici de %temps_pause% secondes
echo.
call :attente %temps_pause%
echo %temps_pause% plus tard ce message s'affiche
echo.
echo le batch va maintenant se terminer dans 10 secondes
call :attente 10
exit

:attente
call :calcultemps
set /a t1= %j1% + %h1% + %m1% + %s1% + %1
:boucleattente
call :calcultemps
set /a t2= %j1% + %h1% + %m1% + %s1%
if "%t2%" LSS "%t1%" goto boucleattente
goto :eof
:calcultemps
set /a jj="100%DATE:~0,2% %% 100"
set /a mm="100%DATE:~3,2% %% 100"
set /a aa=%DATE:~6,4%

rem ATTENTION mettre les 3 lignes suivantes séparées par 1 espace sur 1 seule ligne

set /a j1="(((1461 * (%aa% + 4800 + (%mm% - 14) / 12)) / 4 + (367 * (%mm% - 2 - 12
* ((%mm% - 14) / 12))) / 12 - (3 * ((%aa% + 4900 + (%mm% - 14) / 12) / 100)) / 4 +
%jj% - 32075) - 2455021) * 86400 "

set /a h1= %time:~0,2% * 3600
set /a m1= %time:~3,2% * 60
set s1=%time:~6,2%

cordialement

14 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    supprimer le 0 des variables
    C:> set x=09
    C:> echo %x%
    09
    C:> set x=%x:0=%
    C:> echo %x%
    9
    
    0
  2. heyel Messages postés 8 Statut Membre
     
    Merci pour votre réponse rapide

    si je copie dans le bat le code que vous m'avez fournis j'ai toujours l'erreur ( suis vraiment débutant :)

    Pouvez me dire comment l'intégrer dans mon bat

    merci d'avance
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    je n'ai pas l'erreur chez moi
    ces lignes contiennent une erreur à cause de %%, il en faut un seul % pour modulo, çasuppriime le 0 de février 02
    set /a jj="100%DATE:~0,2% % 100"   
    set /a mm="100%DATE:~3,2% % 100" 

    il y a une méthode très simple pour avoir un délai de 5s:
    ping -n 5 127.0.0.1 >NUL
    0
  4. heyel Messages postés 8 Statut Membre
     
    merci dubcek pour vos réponse

    pour la méthode 1 : quand je supprime le % en trop il me marque "opérateur manquant en boucle" et ne corrige pas l'erreur :(

    pour la méthode ping je connaissais mais comme je doit appliquer ce patch sur différents OS on ma conseillé d'utiliser la la date et l'heure du pc afin de pouvoir le mettre dans n'importe quel Windows et n'importe quel réseaux.

    merci d'avance
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    j'ai faux, les %% sont justes dans un fichier .bat, c'est interactivement qu'il faut un seul %
    enlever le @echo off pour voir ou il fait l'erreur

    ok, j'ai l'erreur quand les secondes sont < 10
    0
  7. heyel Messages postés 8 Statut Membre
     
    ça deviens compliqué :)

    si j'enlève l'echo off j'ai une boucle qui tourne.

    le bat fonctionne malgré le message d'erreur, la solution serait peut être de mettre une ligne de commande qui n'affiche pas les message d'erreur mais je ne sais pas faire

    merci
    0
  8. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    changer ces 3 lignes, car on peut avoir 08 ou 09 minutes ou secondes
    set /a h1= (100%time:~0,2% %% 100) * 3600
    set /a m1= (100%time:~3,2% %% 100) * 60
    set /a s1=100%s1% %% 100
    
    0
  9. heyel Messages postés 8 Statut Membre
     
    là sa progresse bien - je n'ai plus l'erreur. Mais la boucle ne s'arrête jamais :( la fenêtre bat se ferme après les 30 secondes mais le lecteur p se monte et se démonte en boucle alors qu'avant il rester monté.
    0
  10. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    il est démarré depuis une fenêtre DOS ?
    utiliser exit /b pour que la fenêtre reste
    0
  11. heyel Messages postés 8 Statut Membre
     
    je ne comprend pas le dernier message

    le bat est lancé en double cliquant dessus

    sa ouvre une fenêtre de commande

    quand la tempo est finis la fenêtre de commande se ferme mais le montage et le démontage du lecteur tourne en boucle sans s'arrêter alors qu'avant non

    j'espère être plus limpide :)

    merci
    0
  12. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    met un pause à la place de l'exit pour voir si il y a des messages
    0
  13. heyel Messages postés 8 Statut Membre
     
    la pause ne me met aucune erreur mais il me demande d'appuyer sur une touche plusieurs fois - existe t-il une commande pour arrêter une boucle quand la fenêtre commande se referme ?
    0
  14. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    exit ? mais si la fenetre se ferme c'est que le bat a terminé
    0
  15. heyel Messages postés 8 Statut Membre
     
    bon j'abandonne :) je pensais que c'était simple mais non, je vais utiliser ping -n 5 127.0.0.1 >NUL

    merci pour les réponses
    0