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 :

Diviser un fichier .txt en batch (.bat)


Sujet :

Scripts/Batch

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2020
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Diviser un fichier .txt en batch (.bat)
    Bonjour,

    Voilà mon problème, j'ai déjà trouvé et modifier un code le voici:

    Code Batch : 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
    @echo off
     
    set /p brk=Nombre de lignes: 
    set fnam="%~1"
    set fbase=part
    set fext=.txt
    if not defined fbase (
    echo utiliatione: %0 file_name.ext
    echo Aucun fichier trouvé
    goto :eof
    )
    :: edited to fix my goof: ""call :xx fixed to: "" call :xx in following line
    for /f "tokens=1* delims=[]" %%a in ('find /v /n ""^<%fnam%') do if "%%b" neq "" call :xx %%a "%%b"
    PAUSE
    goto :eof
    :xx
    set /a n=(%1-1)/brk+1
    echo [:fbase%%n%%fext%: --- comptes: %~2]
    >>%fbase%%n%%fext% echo.%~2!

    Il suffit de glisser un .txt sur le .bat de ce code, ainsi le cmd ce lance et nous demande combien de lignes on veut par fichier divisé.
    Du coup tout marche bien, sauf que c'est trop lent et donc pas assez puissant, ça prend une dizaine de seconde pour diviser un .txt de 20 000 lignes en plusieurs fichier de 1000 lignes.

    J'aimerai que ce soit beaucoup plus rapide, il me faudrait diviser des .txt de centaines de milliers de ligne, doit-je peut être passer sur Python par exemple ?
    Ou un autre langage ?

    Merci bien.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 201
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 201
    Points : 5 795
    Points
    5 795
    Par défaut
    doit-je peut être passer sur Python par exemple ?
    C'est une solution



    Ou un autre langage ?
    C'est préférable, utilise Powershell

  3. #3
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut
    salem,

    juste quelques remarques sur ton code, sur le point de vue lenteur d'execution:

    1) si tu ne cherches pas à traiter les lignes vides et tu veux juste un index alors pourquoi utiliser un find/if ? un simple set/a suffit et va rendre ton code plus rapide

    2) l'appel de call xx rend le code lent, tu peux mettre ta subroutine directement dans le body de ton forindo

    3) l'utilisation des redirections (append) >> rend aussi le code très lent si possible il faut utiliser cette syntaxe ()>file au lieu de (>>file)

Discussions similaires

  1. Réponses: 4
    Dernier message: 28/08/2006, 14h47
  2. Réponses: 1
    Dernier message: 19/08/2006, 15h02
  3. [batch] fichier txt avec l'année en titre
    Par Adren dans le forum Windows
    Réponses: 7
    Dernier message: 03/08/2006, 21h29
  4. [XML-XSLT] Exécution à l'aide d'un fichier .bat
    Par Hoegaarden dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 16/08/2005, 15h18
  5. .bat pour l'import de fichier txt dans postgres
    Par pseudomh dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 25/03/2005, 00h02

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