Découper un fichier .txt en batch
Mael730
Messages postés
49
Date d'inscription
Statut
Membre
Dernière intervention
-
cs-bilou Messages postés 769 Date d'inscription Statut Membre Dernière intervention -
cs-bilou Messages postés 769 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis novice en batch et je bloque sur un problème: j'ai un fichier .txt contenant un nombre quelconque de lignes (par exemple 135000) et j'aimerai spliter ce fichier en x fichiers portant le même nom +/- un chiffre (pour les différencier) contenant chacun 40 000 lignes.
Est-ce faisable en batch??
Merci d'avance
Cdlt
Je suis novice en batch et je bloque sur un problème: j'ai un fichier .txt contenant un nombre quelconque de lignes (par exemple 135000) et j'aimerai spliter ce fichier en x fichiers portant le même nom +/- un chiffre (pour les différencier) contenant chacun 40 000 lignes.
Est-ce faisable en batch??
Merci d'avance
Cdlt
A voir également:
- Découper un fichier texte en plusieurs parties
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
3 réponses
Tien voilà tu peut faire un truc comme ça:
Le fichier In.txt est le fichier d'entré donc le fichier que tu veux découper.
La variable nbrLigneMax c'est le nombre de ligne que tu veux par fichier.
Bilou
@echo off setlocal enableDelayedExpansion set nbrLigneMax=4 Set nbrLigne=0 set nbrFile=0 for /f "delims=""" %%i in ('type "In.txt"') do ( if !nbrLigne!==%nbrLigneMax% set /a nbrFile=!nbrFile!+1& set nbrLigne=0 echo %%i>>File-!nbrFile!.txt set /a nbrLigne=!nbrLigne!+1 ) pause
Le fichier In.txt est le fichier d'entré donc le fichier que tu veux découper.
La variable nbrLigneMax c'est le nombre de ligne que tu veux par fichier.
Bilou
Et voilà:
Bilou.
@echo off setlocal enableDelayedExpansion set nbrLigneEnteteMax=14 set nbrLigneEntete=0 for /f "delims=" %%i in ('type "In.txt"') do ( if !nbrLigneEntete! LSS %nbrLigneEnteteMax% echo %%i>>"EnTete.txt" set /a nbrLigneEntete+=1 ) set nbrLigneMax=4 Set nbrLigne=4 set nbrFile=0 for /f "delims=" %%i in ('type "In.txt"') do ( if !nbrLigne!==%nbrLigneMax% ( set /a nbrFile+=1 set nbrLigne=0 for /f "delims=" %%j in ('type "EnTete.txt"') do echo %%j>>"File-!nbrFile!.txt") echo %%i>>"File-!nbrFile!.txt" set /a nbrLigne+=1 ) del /f /s /q "EnTete.txt" > NUL pause
Bilou.