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 :

Supprimer la 3ème ligne d'un ensemble de fichiers .txt [Batch]


Sujet :

Scripts/Batch

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Supprimer la 3ème ligne d'un ensemble de fichiers .txt
    Bonjour à tous.
    Je recherche un petit batch (ou autre script) pour supprimer automatiquement la 3ème ligne d'un ensemble de fichiers .txt contenus dans un même dossier.
    Si quelqu'un pouvais me dépanner ça serai super.
    Merci d'avance,

    Matt

  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
    Points : 3 768
    Points
    3 768
    Par défaut
    Salut,

    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
    @echo off&cls
    
    set $NoLigne=3
    
    if exist ## del ##
    
    setlocal enabledelayedexpansion
    
    for %%a in (*.txt) do (echo # traitement de : %%a
                           set $c=1
                           for /f "delims=" %%b in (%%a) do (if not !$c! equ %$NoLigne% echo %%b>>##
                                                             set /a $c+=1)
                           move ## "%%a">nul)
    
    Echo # Traitement Termin‚

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci à toi pour cette réponse.
    Mais malheureusement ça ne fonctionne pas, la 3ème ligne est toujours là, malgré le message de traitement terminé.

    Edit: Apparement, le batch n'aime pas qu'il y est des espaces dans le nom de mes fichiers .txt...
    Donc, après avoir règlé ce problème, un autre apparait: le batch ne supprime pas que la 3ème ligne, mais apparement toutes les lignes vides également.

  4. #4
    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
    Points : 3 768
    Points
    3 768
    Par défaut
    N'étant pas devin, les lignes vides ne sont effectivement pas traités par le script précédent.

    Pour la pris en compte des lignes vides essaye ce script :

    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
    
    @echo off&cls
    
    set $NoLigne=3
    
    if exist ## del ##
    
    setlocal enabledelayedexpansion
    
    
    for %%a in (*.txt) do (echo # traitement de : %%a
                           set $c=1
                           for /f "tokens=1* delims=]" %%b in ('type "%%a" ^| find /V /N ""') do (
                                                            if not !$c! equ 3 (if "%%c"=="" (echo.>>##) else (echo %%c>>##))
                                                            set /a $c+=1)
                           move ## "%%a">nul)
    
    Echo # Traitement Termin‚
    pause

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Novembre 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Voilà, ça marche nickel, merci beaucoup à toi !!
    Un temps précieux de gagné.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Remplacer une ligne bien précise d'un fichier txt
    Par Bastien_Witczak dans le forum VB.NET
    Réponses: 3
    Dernier message: 27/10/2012, 10h36
  2. [XL-2007] recherche d'une ligne de texte dans un fichier txt
    Par cagelion dans le forum Excel
    Réponses: 5
    Dernier message: 25/09/2010, 19h42
  3. corriger des lignes d'un ensemble de fichiers
    Par cashmoney dans le forum Unix
    Réponses: 4
    Dernier message: 08/04/2010, 09h44
  4. Ajout ligne aprés N°ligne précis dans fichier txt
    Par dubinc38 dans le forum VBScript
    Réponses: 12
    Dernier message: 24/02/2009, 08h09
  5. Nombre ligne dans un ensemble de fichier
    Par devdev2003 dans le forum Linux
    Réponses: 8
    Dernier message: 13/05/2005, 18h59

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