Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1549 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Batch avec date variable

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Batch avec date variable

n°1926683
philou192
Posté le 25-09-2009 à 11:49:01  profilanswer
 


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

mood
Publicité
Posté le 25-09-2009 à 11:49:01  profilanswer
 

n°1926698
philou192
Posté le 25-09-2009 à 13:37:25  profilanswer
 

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

n°1926745
pataluc
Posté le 25-09-2009 à 15:53:04  profilanswer
 

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...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Batch avec date variable

 

Sujets relatifs
[Shell/Batch] "cat" à partir d'une ligne précise ...Batch if else
Extraire variable "fichier" et "chemin" d'une variableUne variable dans un input hidden?
Incrémenter variable sur 2 caractèresModifier la valeur d'une borne variable d'une boucle for...
Convertion de dateRecherche d'un caractère précis Batch/DOS
VBA - Macro d'enregistrement de Fichier ac date du jour / automatique[Résolu] Génération flux RSS - Format de date
Plus de sujets relatifs à : Batch avec date variable


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR