Batch avec date variable

Batch avec date variable - Shell/Batch - Programmation

Marsh Posté le 25-09-2009 à 11:49:01    


Bonjour,
 
Voila mon Probleme : J' aimerais rechercher dans un fichier log les lignes concernant un jour précis
qui est en principe la veille du déclanchement du fichier Batch.
Dans mon exemple, je recherche toutes les lignes contenant le texte : "24.Sep", c'est à dire hier.
Mais si je déclanche mon batch demain, j'aimerais qu'il me cherche les lignes contenant "25.Sep"
sans pour autant avoir besoin de changer la date manuellement.
Y a t' il une solution ?
Les dates sont ainsi formatées et en Anglais
 
 
@echo off
rem ======================================== Keep oder Not Keep ======================================================
Findstr "29.Sep" "operator0002.log" "operator0001.log" > jour.txt
Findstr "id=0xad0e" "jour.txt" > Probleme.txt
for /f "delims=" %%i in (Probleme.txt) do set /a Compt+=1
echo %compt% > Resultat.txt
 
 
 
Si vous pouvez me donner un coup de pouce, ce serait vraiment sympa.
Philou

Reply

Marsh Posté le 25-09-2009 à 11:49:01   

Reply

Marsh Posté le 25-09-2009 à 13:37:25    

J'ai trouvé ceci qui pourrait m' aider, mais il y a encore un truc qui cloche !!!
 
REM ---------------------------------------------------------------------------
REM DEFINITION DE JOUR D'EXECUTION J-1
REM ---------------------------------------------------------------------------
 
@echo off
 
set /a NJ= -1
set /a J=1%DATE:~0,2% - 100
set /a M=1%DATE:~3,2% - 100
set /a A=%DATE:~6,4%
set /a JJ=%NJ% + ((1461 * (%A% + 4800 + (%M% - 14) / 12)) / 4 + (367 * (%M% - 2 - 12 * ((%M% - 14) / 12))) / 12 - (3 * ((%A% + 4900 + (%M% - 14) / 12) / 100)) / 4 + %J% - 32075)
set /a T0=%JJ% + 68569
set /a T1=(4 * %T0%) / 146097
set /a T0=%T0% - (146097 * %T1% + 3) / 4
set /a T2=(4000 * (%T0% + 1)) / 1461001
set /a T0=%T0% - (1461 * %T2%) / 4 + 31
set /a T3=(80 * %T0%) / 2447
set /a J=%T0% - (2447 * %T3%) / 80
set /a M=%T3% + 2 - (12 * (%T3% / 11))
set /a A=100 * (%T1% - 49) + %T2% + (%T3% / 11)
 
if %J% LSS 10 set J=0%J%
if %M% LSS 10 set M=0%M%
 
echo.
echo hier, nous étions le : %J%/%M%/%A%
echo.
 
pause
 
rem >>>>>>>>>>>>>>>>>>>>>>>>> le résultat est : 24/09/2009
 
rem >>>>>>>>>>>>>>>>>>>>>>>>>  et j' aimerais avoir une nouvelle variable qui me donne ceci en format anglais : 24.Sep

Reply

Marsh Posté le 25-09-2009 à 15:53:04    

ben t'as tout la, sous dos tu pourras pas faire une conversion automatique, donc t'as plus qu'a faire des "if then if then etc" pour convertir en lettres. (a moins qu'il n'y ait un cas sous dos mais je ne crois pas...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed