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   -
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
A voir également:

3 réponses

cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
Tien voilà tu peut faire un truc comme ça:
@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
3
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
Et voilà:
@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.
1
Mael730 Messages postés 49 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci ça fonctionne nikel!
J'ai une autre question:
Il faudrait que le batch me recopie l'en-tête contenue dans le fichier In.txt dans tout les fichiers File-* générés.

P.S:Cette en-tête fait 14 lignes

Merci d'avance
0