IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

insérer une entête dans n fichiers


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2011
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2011
    Messages : 3
    Par défaut insérer une entête dans n fichiers
    Bonjour,

    Je ne parviens pas à trouver dans le forum un cas à adapter à ma problématique.

    J'ai une centaines de fichiers .csv que je dois modifier avant de livrer.
    Ces modifications sont classiques (renommage, horodatage ...), mais celle qui me pose problème consiste à ajouter, pour chacun de ces fichiers, une ligne d'entête.

    Je souhaite donc réécrire chaque fichiers les uns après les autres en ajoutant en 1ère ligne une entête contenant des champs et un séparateur ; (avec un retour à la ligne)

    exemple d'entête :
    NOM;PRENOM;DEVICE;OS

    Si vous avez un exemple que je puisse adapter...

    merci

  2. #2
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    salut,

    Dans ton cas tu dois passer par un fichier temporaire ou l'on va écrire ton entête et ensuite faire un type du fichier csv.

    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
    19
    20
    21
    :::Par SachaDee
    :::www.bbat.forumeiros.com
    
    @echo off
    
    ::::On récupère les fichiers Csv dans le repertoire courant
     
    for /f "delims=" %%a in ('dir *.csv /aa /b') do (echo TRAITEMENT DE : %%a
    
    ::::on écrit ton entête dans le temporaire
    
                                        echo nom;date;xxx>tmp.tmp
    
    ::::On écrit fichier Csv à la suite de ton entête
    
                                        type "%%a">>tmp.tmp
    
    ::::on renomme le temporaire avec le nom original du Csv
                                        move tmp.tmp "%%a"
                                        pause)
    Voilà

    Amicalement

  3. #3
    Expert confirmé
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 844
    Par défaut

    Voici une autre solution en Vbscript
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Option Explicit
    Dim CheminDossier,AjoutText,Ext,Titre
    CheminDossier = "C:\Test"
    AjoutText = "NOM;PRENOM;DEVICE;OS"
    Ext = "csv"
    Titre = "Ajout d'entete dans les fichiers de type " & Ext
    
    AjoutEntete CheminDossier,AjoutText,Ext
    
    Sub AjoutEntete(CheminDossier,AjoutText,Ext)  
        dim fso,f,f1,fc,LireTout,vbscopy,ap,bname
        Set fso = CreateObject("Scripting.FileSystemObject")
        set f = fso.GetFolder(CheminDossier)
        set fc = f.Files
        for each f1 in fc
            set LireTout=fso.OpenTextFile(f1.path,1)
            On Error Resume Next
            vbscopy=LireTout.ReadAll
            If Err <> 0 Then MsgBox "Vérifier s'il y a un fichier qui est vide !",16,"Vérifier s'il y a un fichier qui est vide !"
            Err.Clear
            Ext=fso.GetExtensionName(f1.path)
            Ext=lcase(Ext)
            set ap=fso.OpenTextFile(f1.path,2,true)
            ap.writeLine AjoutText & VbNewLine
            ap.writeLine vbscopy
            ap.close
            bname=fso.GetBaseName(f1.path)
            set cop=fso.GetFile(f1.path)
            cop.copy(CheminDossier&"\"&bname&".csv")
        Next  
        MsgBox "L'ajout de l'entete dans les fichiers de type " & Ext & " est Terminé avec Succès !",64,Titre    
    End Sub

Discussions similaires

  1. [phpBB][2] Insérer une variable dans un fichier langue
    Par Sparktacus dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 27/11/2007, 04h54
  2. commande pour insérer une table dans un fichier
    Par mix_35 dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 13/03/2007, 20h22
  3. insérer une chaine dans un fichier XML
    Par 242 dans le forum Linux
    Réponses: 2
    Dernier message: 14/12/2006, 16h32
  4. Insérer une image dans un fichier exe
    Par RenaudB dans le forum Delphi
    Réponses: 22
    Dernier message: 18/05/2006, 10h53
  5. [VBA] insérer une ligne dans un fichier excel
    Par cokinoumasterflash dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 21/07/2005, 18h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo