Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[RESOLU] formatage de donnée
Auteur Message
Répondre en citant
Message [RESOLU] formatage de donnée 
Bonjour mes ami(e)s,

es-ce qu'on peux en pure batch faire ceci:

selectionner la ligne la plus longue dans un fichier LOG

par exemple j'ai un fichier contenant ceci:

Code:
Logging: 17/07/2010 AT 17:13 DUMP
Logging: 18/08/2010 AT 17:14 HS
Logging: 19/11/2010 AT 17:18 DUMP25
Logging: 20/10/2010 AT 17:16 S52


ceci n'est qu'un exemple, mais la structure est la même: c-à-d:
Code:

Logging: DATE TIME STATE


maintenant je veux recuperer la ligne la plus longue qui sera dans ceg cas:
Code:

Logging: 19/11/2010 AT 17:18 DUMP25


merci



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [RESOLU] formatage de donnée 
Salut,

Je te propose avec fierté et un gros mal de tête, mon petit code pour ta demande ... Wink
le fichier LOG sera nommé: fichier.log
Big Up à "I'mHere" pour la fonction taille du texte Razz

Code:

@echo off

setlocal enabledelayedexpansion enableextensions

for /f "tokens=*" %%A in ('type fichier.log') do (
    set VAR=%%A
    call :DECT
    )

for /l %%A in (1,1,100) do (
   for /f "tokens=1,*" %%B in ('type ### ^| Find "%%A$ "') do (
      for /f "tokens=*" %%D in ("%%C" ^| Find "$ ") do (
         set "BIGGEST=%%C"
         )
      )
   )

echo.
echo Ligne la plus longue:
echo ---------------------
echo.
echo %BIGGEST%

del /q /s ###>nul

pause>nul

:DECT
for /f "tokens=1,* delims=[,]" %%A in ('"%comspec% /u /c echo:%VAR%|more|find /n /v """') do (
    set /a SIZE=%%A-4
    )
echo %SIZE%$ %VAR%>>###
goto :EOF





______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [RESOLU] formatage de donnée 
stryk a écrit:
Salut,

Je te propose avec fierté et un gros mal de tête, mon petit code pour ta demande ... Wink
le fichier LOG sera nommé: fichier.log
Big Up à "I'mHere" pour la fonction taille du texte Razz

Code:

@echo off

setlocal enabledelayedexpansion enableextensions

for /f "tokens=*" %%A in ('type fichier.log') do (
    set VAR=%%A
    call :DECT
    )

for /l %%A in (1,1,100) do (
   for /f "tokens=1,*" %%B in ('type ### ^| Find "%%A$ "') do (
      for /f "tokens=*" %%D in ("%%C" ^| Find "$ ") do (
         set "BIGGEST=%%C"
         )
      )
   )

echo.
echo Ligne la plus longue:
echo ---------------------
echo.
echo %BIGGEST%

del /q /s ###>nul

pause>nul

:DECT
for /f "tokens=1,* delims=[,]" %%A in ('"%comspec% /u /c echo:%VAR%|more|find /n /v """') do (
    set /a SIZE=%%A-4
    )
echo %SIZE%$ %VAR%>>###
goto :EOF


Merci BigBoss ça fonctionne à merveille Smile



Répondre en citant
Message [RESOLU] formatage de donnée 
juste une petite question, es-ce qu'on peux modifier ton script pour qu'il retourne le resultat inverse ç-à-d "la ligne plus courte"

merci encore Okay



Répondre en citant
Message [RESOLU] formatage de donnée 
RE,

Oui bien sur, hé hé Twisted Evil , il suffit d'inverser la" boucle for /l":

Code:

@echo off

setlocal enabledelayedexpansion enableextensions

for /f "tokens=*" %%A in ('type fichier.log') do (
    set VAR=%%A
    call :DECT
    )

:: #######  au lieu de (1,1,100)  ######
for /l %%A in (100,-1,1) do (
   for /f "tokens=1,*" %%B in ('type ### ^| Find "%%A$ "') do (
      for /f "tokens=*" %%D in ("%%C" ^| Find "$ ") do (
         set "BIGGEST=%%C"
         )
      )
   )

echo.
:: ###### et là: ligne la plus courte ^^
echo Ligne la plus courte:
echo ---------------------
echo.
echo %BIGGEST%

del /q /s ###>nul

pause>nul

:DECT
for /f "tokens=1,* delims=[,]" %%A in ('"%comspec% /u /c echo:%VAR%|more|find /n /v """') do (
    set /a SIZE=%%A-4
    )
echo %SIZE%$ %VAR%>>###
goto :EOF


@+




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [RESOLU] formatage de donnée 
Et puis tiens, autant lister la plus longue et la plus courte dans le même batch Mr. Green Wink

Code:

@echo off

setlocal enabledelayedexpansion enableextensions

for /f "tokens=*" %%A in ('type fichier.log') do (
    set VAR=%%A
    call :DECT
    )

for /l %%A in (1,1,100) do (
   for /f "tokens=1,*" %%B in ('type ### ^| Find "%%A$ "') do (
      for /f "tokens=*" %%D in ("%%C" ^| Find "$ ") do (
         set "BIGGEST=%%C"
         )
      )
   )
for /l %%A in (100,-1,1) do (
   for /f "tokens=1,*" %%B in ('type ### ^| Find "%%A$ "') do (
      for /f "tokens=*" %%D in ("%%C" ^| Find "$ ") do (
         set "SMALLIEST=%%C"
         )
      )
   )


echo.
echo Ligne la plus longue:
echo ---------------------
echo.
echo %BIGGEST%
echo.
echo ------------------------------------
echo.
echo Ligne la plus courte:
echo ---------------------
echo.
echo %SMALLIEST%


del /q /s ###>nul

pause>nul

:DECT
for /f "tokens=1,* delims=[,]" %%A in ('"%comspec% /u /c echo:%VAR%|more|find /n /v """') do (
    set /a SIZE=%%A-4
    )
echo %SIZE%$ %VAR%>>###
goto :EOF






______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [RESOLU] formatage de donnée 
magnifique !!

merci stryk Okay Okay



Répondre en citant
Message [RESOLU] formatage de donnée 
Pas de quoi, ça fait plaisir Wink

Si tu n'as plus de questions, tu peux marquer: [RESOLU] sur ton sujet ^^

@+




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [sujet résolu] 
c'est résolu stryk



Répondre en citant
Message [RESOLU] formatage de donnée 
Ok, ^^

Mais c'est dans le titre du sujet qu'il faut écrire "résolu" Laughing

@+




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Message [RESOLU] formatage de donnée 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch