Conversions en octal pour les valeurs 08 et 09

Fermé
heyel Messages postés 8 Date d'inscription dimanche 24 février 2013 Statut Membre Dernière intervention 24 février 2013 - 24 févr. 2013 à 10:46
heyel Messages postés 8 Date d'inscription dimanche 24 février 2013 Statut Membre Dernière intervention 24 février 2013 - 24 févr. 2013 à 16:26
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

dubcek Messages postés 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
24 févr. 2013 à 11:10
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 dimanche 24 février 2013 Statut Membre Dernière intervention 24 février 2013
24 févr. 2013 à 11:24
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 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
Modifié par dubcek le 24/02/2013 à 13:18
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 dimanche 24 février 2013 Statut Membre Dernière intervention 24 février 2013
24 févr. 2013 à 13:30
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 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
Modifié par dubcek le 24/02/2013 à 13:51
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 dimanche 24 février 2013 Statut Membre Dernière intervention 24 février 2013
24 févr. 2013 à 13:54
ç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 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
24 févr. 2013 à 14:36
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 dimanche 24 février 2013 Statut Membre Dernière intervention 24 février 2013
24 févr. 2013 à 14:52
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 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
24 févr. 2013 à 15:04
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 dimanche 24 février 2013 Statut Membre Dernière intervention 24 février 2013
24 févr. 2013 à 15:18
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 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
24 févr. 2013 à 15:33
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 dimanche 24 février 2013 Statut Membre Dernière intervention 24 février 2013
24 févr. 2013 à 15:40
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 18758 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 24 décembre 2024 5 623
24 févr. 2013 à 15:52
exit ? mais si la fenetre se ferme c'est que le bat a terminé
0
heyel Messages postés 8 Date d'inscription dimanche 24 février 2013 Statut Membre Dernière intervention 24 février 2013
24 févr. 2013 à 16:26
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