Valeur variable fausse

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
pmer
Batcheur occasionnel
Messages : 9
Enregistré le : 12 févr. 2009 13:54

Valeur variable fausse

Message par pmer »

Bonjour,
je suis un tout nouveau membre de ce forum. Je suis un débutant dans l'utilsation et la programmation en batch.
J'avoue que ce site web m'a bien aidé pour commencer ma programmation.
Voici mon problème :
dans le programme ci-dessous je ne comprends pas pourquoi la valeur de la variable !unsurLMO! est toujours égale à 0 alors que %%g est différente de 0 et vaut 142,9;156,1;599,8
programme batch
echo off
setlocal enableDelayedExpansion
@FOR /f "tokens=1-2,4-5,19-21 delims=," %%a in (D:\MeteoMM5\20080630separvirg.txt) do (
set LMO=%%g
set /A unsurLMO=1/!LMO!
echo 1/LMO : !unsurLMO!
)
endlocal
pause

Extrait du fichier 20080630separvirg.txt (3 lignes, 27 colonnes):
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.,

En vous remerciant par avance pour votre aide sur cette question de néophyte.
Cordialement.
Pmer
PS : avec toutes mes excuses pou le mauvais placement de mon message
Batch_Man
King Of Batch
Messages : 64
Enregistré le : 09 janv. 2009 00:01

Re: Valeur variable fausse

Message par Batch_Man »

Bonjour,

Voici le code qu'il te faut

Code : Tout sélectionner

@echo off
For /F "skip=2 tokens=21 delims=, " %%a in (D:\MeteoMM5\20080630separvirg.txt) do (
     set LMO=%%a
          )
For /F "skip=1 tokens=21 delims=, " %%a in ('type D:\MeteoMM5\20080630separvirg.txt ^| find /v "%LMO%"') do (
     set LMO2=%%a
          )
For /F "tokens=21 delims=, " %%a in ('type D:\MeteoMM5\20080630separvirg.txt ^| findstr /v "%LMO% %LMO2%"') do (
     set LMO3=%%a
          )
          
echo %LMO%
echo %LMO2%
echo %LMO3%
pause
Batch_Man
Répondre