Probléme DOS
jerem
-
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
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
Salut,
peut être que de cette façon
?
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
?
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.
J'essaye cela de suite et je te dis ce que cela donne.
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
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
Tu peux modifier comme suivant pour pallier à ce pb :
Explication
==> si le premier caractère (^) de %heure% est un zéro, alors n'afficher que les 5 caractères suivant le 1er
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