Découper un fichier .txt en batch

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
Configuration: Windows XP
Firefox 3.5.7

3 réponses

  1. 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
    1. 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
      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