Conversions en octal pour les valeurs 08 et 09

heyel Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
heyel Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -
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

A voir également:

14 réponses

dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
supprimer le 0 des variables
C:> set x=09
C:> echo %x%
09
C:> set x=%x:0=%
C:> echo %x%
9
0
heyel Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
heyel Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
heyel Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
ç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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
heyel Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
il est démarré depuis une fenêtre DOS ?
utiliser exit /b pour que la fenêtre reste
0
heyel Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
met un pause à la place de l'exit pour voir si il y a des messages
0
heyel Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
exit ? mais si la fenetre se ferme c'est que le bat a terminé
0
heyel Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
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