Bonjour,
J'ai besoin d'aide pour le traitement de fichiers volumineux.
J'ai pensé à faire un batch pour essayer de traiter en masse, mais à vrai dire je commence à me demander si c’était une bonne idée.
Je suis plutôt calée en requête SQL mais le batch m'est plutôt étranger, en gros je n'y connais presque rien...
Je vous explique ma problématique, je dois nettoyer des fichiers pour les intégrer dans une base de données.
dans cet ordre:
je dois remplacer les "," par ";"
je dois remplacer les "." par ","
je dois remplacer les "; " par ";" (en gros il y a des espaces au début de mes en-têtes qui gênent, mais au pire je pourrais ignorer ma ligne d'en-têtes à l'intégration)==> d'ailleurs je pense que ce sera le meilleur choix.
je dois remplacer les "O" par "0" quelle que soit la casse
à chaque fin de ligne je dois ajouter la provenance Belgium, France etc...
Mon nom de fichier n'est jamais le même
j'ai réussi en m'inspirant de ce que j'ai pu lire, à ébaucher plusieurs fichiers.bat pour les remplacements de caractères, mais je ne sais pas comment ajouter ma provenance en ignorant la ligne d’en-têtes.
Mais premièrement j'aimerai pouvoir tout faire avec un seul .bat et surtout j'ai l'impression que ce n'est pas du tout optimisé pour des fichiers volumineux.
Devrais-je penser à utiliser un autre "langage"? ou bien mon batch est-il juste boiteux? voir ci dessous.
Dernier point ça m'ajoute un espace en fin ligne à chaque exécution de script.
Merci d'avance de votre aide
Code : 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 @echo off & cls setlocal enabledelayedexpansion set "Fichier=Belgium_01_08_2016test.csv" set "Fichier_Temporaire=Belgium_01_08_2016test_tmp.csv" set "Search_Text=," set "Replace_Text=;" for /f "tokens=1,* delims=¶" %%A in ( '"type !Fichier!"') do ( SET string=%%A SET modified=!string:%Search_Text%=%Replace_Text%! echo !modified! >> !Fichier_Temporaire! ) del !Fichier! move !Fichier_Temporaire! !Fichier! pause exit
Partager