Probléme DOS

jerem -  
 jerem -
Bonjour,

Je ne sais pas si c'est dans cette partie du forum qu'il faut que je post ce message, mais je tente :)
Mon problème est le suivant : J'ai un fichier texte contenant différente information, voici un exemple de ligne:
4a9345c500000362,2009-08-25,095536,2009-08-25,095536,etc

4a9345c5000003a6,2009-08-25,100007,2009-08-25,100007,etc

La partie qui m'interresse est celle souligné, cette dernière représente l'heure.
Je souhaite filtré différente ligne de ce fichier en fesant "des supérieurs à telle heure" ou "inférieur" , le fait est que les heures en dessous de 10h se trouve avoir un 0 devant (ce qui parait logique) mais me pose des problème pour faire des opération pour la suite. Donc ma question est la suivante, comment supprimé ce zéro dans le fichier?
J'ai essayer différentes méthodes:

for /f "tokens=3 delims=," %%a in (call_log_filter.txt) do if %%a LEQ 100000 call :command

:command
set Heure=%%a
après je bloque car la condition quand il y a l'appel "command" se s'effectue pas.
J'ai une idée avec Heure=%heure:~1,6% mais n'arrive pas à l'exploiter

une autre idée:

for /f "tokens=3 delims=," %%a in (call_log_filter.txt) do if %%a LEQ 100000 switch (commande permettant de remplacer une valuer par une autre) call_log_filter "%%a" "%%a=%%%a:~1,6%"
bien entendu ce marche pas du à la syntaxe.
Donc je bloque sur cela, Si quelqu'un aurait une idée pour m'aider, je lui serai reconnaissant.

Merci d'avance

3 réponses

eZula Messages postés 3509 Statut Contributeur 392
 
Salut,

peut être que de cette façon

for /f "tokens=3 delims=," %%a in (call_log_filter.txt) do call :commande %%a

:commande
set heure=%1
echo %heure%| findstr "^0">NUL &&(set heure=%heure:~1,6%)
echo l'heure est %heure%

pause


?
0
jerem
 
merci de me répondre et de prendre du temps pour m'aider,

J'essaye cela de suite et je te dis ce que cela donne.
0
jerem
 
Ca yes j'ai essayé, ton programme marche parfaitement, bien que je ne comprend pas trop la syntaxe de :

set heure=%1
echo %heure%| findstr "^0">NUL &&(set heure=%heure:~1,6%)

Je veut pas abuser, mais pourrait tu me l'expliquer les points soulignés afin de comprendre comment cela marche pour que je comprenne mon programme.

Merci d'avance
0
jerem > jerem
 
a j'avais oublié, quand on appelle une commande dansune boucle for on est obligé de mettre ce bout de programme dans une .bat a part, car dans mon cas cela entraine la suite entiere du programme sans prendre en compte toutes les lignes malgrés les étiquettes
0
eZula Messages postés 3509 Statut Contributeur 392
 
Tu peux modifier comme suivant pour pallier à ce pb :

for /f "tokens=3 delims=," %%a in (call_log_filter.txt) do call :commande %%a
GOTO :suite

:commande
set heure=%1
echo %heure%| findstr "^0">NUL &&(set heure=%heure:~1,5%)
echo l'heure est %heure%
GOTO :EOF

:suite
pause


Explication

echo %heure%| findstr "^0">NUL &&(set heure=%heure:~1,5%)


==> si le premier caractère (^) de %heure% est un zéro, alors n'afficher que les 5 caractères suivant le 1er
0
jerem
 
merci pour ton aide, c'est bon de savoir que des gens veulent partager leur savoir sur le net.merci encore
0