Bonjour Je cherche à écrire un script qui permet de découper un fichier CSV (situé sur mon bureau) en plusieurs fichiers CSV de 3000 lignes maximums.
Le fonctionnement est simple: j'enregistre chaque ligne dans une variable puis je copie cette variable dans le nouveau fichier créé. Toutes les 3000 lignes un nouveau fichier est créé, et je souhaiterai que les lignes suivantes s'écrivent donc dans ce nouveau fichier.
J'ai trouvé de nombreux exemples sur internet mais un problème persiste: Tout ce que je copie s'écrit dans le même fichier. (le premier fichier créé)
J'espère que vous pourrez prendre le temps de me répondre et de trouver une solution à mon problème.
Voici mon code. Merci d'avance
Code BAT : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 @echo off setLocal EnableDelayedExpansion set /a limit=3000 set file=instance.csv set filepath=C:\Users\CQBD1476\Desktop\instance.csv set /a lineCounter=1 set /a filenameCounter=1 set name= set extension= for %%a in (%file%) do ( set "name=%%~na" set "extension=%%~xa" ) set splitFile=!name!-part!filenameCounter!!extension! echo Created !splitFile!. for /f "tokens=* delims=;" %%b in (%file%) do ( if !lineCounter! gtr !limit! ( echo --------------------------!limit!------------------------------- set /a filenameCounter=!filenameCounter! + 1 echo *************************** !filenameCounter! **************************** set lineCounter=1 set splitFile=!name!-part!filenameCounter!!extension! echo Created !splitFile!. ) echo boucle for numero !filenameCounter! echo %%b>>%splitFile% set /a lineCounter=!lineCounter! + 1 )
Partager