Bonjour,
pour simplifier à l'extrême, je n'arrive pas dans mon programme ci-dessous à générer une variable qui est l'inverse d'une autre soit passer de x à 1/x. Dans mon programme, je lis dans un fichier ma variable x qui est %%g et je veux écrire dans un autre fichier (col1.txt) la variable 1/%%g.
programme batch
echo off
setlocal enableDelayedExpansion
@FOR /f "tokens=1-2,4-5,19-21 delims=," %%a in (D:\MeteoMM5\20080630separvirg.txt) do (
set dateaaaammjj=%%a
set annee=!dateaaaammjj:~0,4!
set mois=!dateaaaammjj:~4,2!
set jour=!dateaaaammjj:~6,2!
set heure=!dateaaaammjj:~8,2!
if !mois! EQU 01 set nbjour==0
if !mois! EQU 02 set nbjour==31
...
set /A jourjulien =!jour!+!nbjour!
set LMO=%%g
set /A unsurLMO=1/!LMO!
echo 1/LMO : !unsurLMO!
echo !annee!,!jourjulien!,!heure!,%%b,%%c,%%d,%%e,%%f,!unsurLMO! >>D:\MeteoMM5\col1.txt
)
endlocal
pause
Malheureusement, j'obtiens toujours 0 pour !unsurLMO! dans mon fichier col1.txt alors que mon programme écrit ce que j'attends pour les autres variables !
Extrait du fichier 20080630separvirg.txt (3 lignes, 27 colonnes) Le fichier complet comporte en fait 96 lignes :
2008063000, 17.25, 0.783, 2.89, 360., 0.0, 0.0, -4.0, 2.5, 385.6, 9.80, 0.00, 0.00, 61., 0., 0., 0., 22405., 0.00, 300., 142.9, 267.9, 11.07, 9.80, 3.13, 327.,
2008063001, 16.77, 0.796, 2.83, 2., 0.0, 0.0, -3.5, 2.0, 381.8, 9.29, 0.00, 0.00, 19., 0., 0., 0., 22485., 0.00, 302., 156.1, 264.9, 3.38, 9.29, 2.54, 323.,
2008063002, 16.04, 0.801, 2.96, 3., 0.0, 0.0, -2.5, 2.4, 379.2, 10.13, 0.00, 0.00, 24., 0., 0., 0., 22919., 0.00, 292., 599.8, 263.4, 4.41, 10.13, 2.20, 321.,
Dans mon programme, j'ai toujours 0 qui s'écrit en guise de 1/%%g ce qui n'est pas ce que j'attends. Y-a-il un problème de format de cette variable qui est un nombre assez petit.
Merci par avance pour votre aide, je reste à votre disposition pour d'autres éventuels compléments d'explications.
Pmer
Mauvais résultat sur le calcul d'une variable
Modérateur : WIN32-[GG]