Spliter tout les fichiers txt d'un dossier par ligne
Spliter tout les fichiers txt d'un dossier par ligne - Shell/Batch - Programmation
MarshPosté le 04-09-2020 à 23:19:14
Bonjour a tous
J'ai une dizaine de fichiers de log qui pèse a peu près chacun 500mo, pour pouvoir faire des recherches rapide je dois les splitter à 100 000 lignes, j'aimerais automatiser la tache par un simple clic, un .bat qui decoupe tous les fichiers texte d'un dossier.
J'ai trouver ce bat sur google mais il ne traite qu'un seule fichier à la fois :
@echo off setLocal EnableDelayedExpansion set limit=100000 set file=test.txt set lineCounter=1 set filenameCounter=1
set name= set extension= for %%a in (%file%) do ( set "name=%%~na" set "extension=%%~xa" )
for /f "tokens=*" %%a in (%file%) do ( set splitFile=!name!!filenameCounter!!extension! if !lineCounter! gtr !limit! ( set /a filenameCounter=!filenameCounter! + 1 set lineCounter=1 echo Created !splitFile!. ) echo %%a>> !splitFile!
Marsh Posté le 04-09-2020 à 23:19:14
Bonjour a tous
J'ai une dizaine de fichiers de log qui pèse a peu près chacun 500mo, pour pouvoir faire des recherches rapide je dois les splitter à 100 000 lignes,
j'aimerais automatiser la tache par un simple clic, un .bat qui decoupe tous les fichiers texte d'un dossier.
J'ai trouver ce bat sur google mais il ne traite qu'un seule fichier à la fois :
@echo off
setLocal EnableDelayedExpansion
set limit=100000
set file=test.txt
set lineCounter=1
set filenameCounter=1
set name=
set extension=
for %%a in (%file%) do (
set "name=%%~na"
set "extension=%%~xa"
)
for /f "tokens=*" %%a in (%file%) do (
set splitFile=!name!!filenameCounter!!extension!
if !lineCounter! gtr !limit! (
set /a filenameCounter=!filenameCounter! + 1
set lineCounter=1
echo Created !splitFile!.
)
echo %%a>> !splitFile!
set /a lineCounter=!lineCounter! + 1
)
Merci pour vos reponses