Script batch: Analyser un fichier log
Résolu
poparnassus
Messages postés
462
Statut
Membre
-
poparnassus Messages postés 462 Statut Membre -
poparnassus Messages postés 462 Statut Membre -
Bonjour,
Salut MessieuDame :-)
Voila j'ai besoin d'analyse un ensemble de fichier Log qui contient ~1 000 000 de ligne ( voir beaucoup plus, étant donnée que j'arrive pas a déterminer le nombre ^^). J'ai voulue tester un script batch mais il bloque au deuxieme fichier de 364 000 ligne, juste pour le comtpage de ligne lol
Donc que me conseillerez-vous ? un code en C ? plus performant ?
Je recherche des addresses IP differentes du reseau local, donc je veux lister toute les adresse qui ne sont pas en 192.168.xxx.xxx
Ci dessous le code utiliser pour compter les lignes.
Merci de ne pas m'insulter, je sais que le batch est loin d'etre performant lool
Amicalement bonne soirée
Salut MessieuDame :-)
Voila j'ai besoin d'analyse un ensemble de fichier Log qui contient ~1 000 000 de ligne ( voir beaucoup plus, étant donnée que j'arrive pas a déterminer le nombre ^^). J'ai voulue tester un script batch mais il bloque au deuxieme fichier de 364 000 ligne, juste pour le comtpage de ligne lol
Donc que me conseillerez-vous ? un code en C ? plus performant ?
Je recherche des addresses IP differentes du reseau local, donc je veux lister toute les adresse qui ne sont pas en 192.168.xxx.xxx
Ci dessous le code utiliser pour compter les lignes.
Merci de ne pas m'insulter, je sais que le batch est loin d'etre performant lool
Amicalement bonne soirée
@echo off
SETLOCAL enableextensions ENABLEDELAYEDEXPANSION
@for %%n in (%0) do set fold=%%~dpn
::chemin
set archive=%fold%Archive_LOG\local
echo %archive%
pause
::Compteur de ligne des fichier journal
cd %archive%
set /a total=0
for %%A in (*.txt) do (
set /a compt=0
for /f "tokens=*" %%I in ('type "%%A"') do (set /a compt+=1)
echo %%~dpnxA : !compt!
set /a total=!total!+!compt!
)
echo. & echo Total ligne : !total!
2 réponses
-
Bonjour,
Le premier FOR est inutile et contient une erreur, tu peux faire comme ça :
@echo off
setlocal enableextensions enabledelayedexpansion
set archive=%~dp0Archive_LOG\local
echo %archive%
echo.
::Compteur de ligne des fichier journal
cd %archive%
set /a total=0
for %%A in (*.txt) do (
set /a compt=0
for /f "tokens=*" %%I in ('type "%%A"') do (set /a compt+=1)
echo %%~nxA : !compt!
set /a total=!total!+!compt!
)
echo. & echo Total lignes : !total!
echo. & pause
exit
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour, pourquoi compter les lignes si tu cherches des adresses IP?
pourquoi a-tu choisi de faire cela ainsi, quels autres outils maîtrises-tu?