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 :

[DOS] copie de ligne d'un fichier vers un autre


Sujet :

Scripts/Batch

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut [DOS] copie de ligne d'un fichier vers un autre
    Bonjour,

    Je souhaite copier 3 lignes d'un fichier txt dans un autre fichier s'appelant resultat.txt. (la cerise serait de copier ces lignes à partir du "nième" caractère)
    En cherchant, j'ai trouvé ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    @echo off
    set Numéro=%1
    set "ligne="
    set/a Numéro-=1
    for /f "delims=" %%a in ('more/e +%%Numéro%% ^< fichier.txt') do (
    if not defined ligne set "ligne=%%a"
    )
    echo %ligne%
    mais ça ne fonctionne que pour une ligne. Faut-il faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    @echo off
    set Numéro=%2
    set "ligne="
    set Numéro2=%30
    Set Numéro3=%31
    set/a Numéro-=2
    set/a Numéro-=30
    set/a Numéro-=31
    for /f "delims=" %%a in ('more/e +%%Numéro%% ^< "resultat" &"_"& NomFic & "" & "".txt""') do (
    if not defined ligne set "ligne=%%a"
    )
    echo %ligne%
    d'avance merci

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 24
    Points : 6
    Points
    6
    Par défaut
    Salut!
    Fais ceci:
    @echo off
    for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . fichier.txt') do if %%i geq 1 if %%i leq 3 echo %%j >> resultat.txt
    pause
    Note:
    Ici tu auras les lignes 1 à 3 de fichier.txt, si tu veux les lignes 20 à 23 tu devras marquer ( gep 20 et leq 23)

    Bye

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Merci pour la piste!
    Mais ce qui m'intéresse, c'est de récupérer les lignes 2 / 30 et 31!

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 24
    Points : 6
    Points
    6
    Par défaut
    Re,

    @echo off
    for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . fichier.txt') do if %%i geq 2 if %%i leq 2 echo %%j >> resultat.txt
    for /f "tokens=1,* delims=:" %%i in ('findstr /n /r . fichier.txt') do if %%i geq 30 if %%i leq 31 echo %%j >> resultat.txt
    pause
    Cela devrait coller

  5. #5
    Membre émérite Avatar de Drizzt [Drone38]
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2004
    Messages
    1 001
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur de projet

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 001
    Points : 2 453
    Points
    2 453
    Par défaut
    Tu peux faire quelque chose comme cela aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    findstr /n /r . fichier.txt | findstr /b "2: 30: 31:" >> resultat.txt
    Il te restera juste à retirer les 2: 30: et 31:. Ce que tu peux faire en adaptant le for de tcherrio.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Merci à vous!

    J'ai un peu galéré, car j'intègre ça dans un code vba, avec des variables ;-). Ca fonctionne, sauf que je dois avoir un pb dans mon code vba (et ma boucle) car je me retrouve avec mon dernier fichier de chaque occurence comprenant 6 fois mes informations.

    Je reposterai éventuellement lundi, si je n'ai pas trouvé.

    Bon week end à vous et encore merci

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

Discussions similaires

  1. [Toutes versions] Copie de cellules d'un fichier vers un autre fichier
    Par damiens75 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/01/2010, 08h11
  2. Copier un certain nombre de lignes d'un fichier vers un autre fichier
    Par Aicha78 dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 14/01/2009, 22h35
  3. Copie de cellules d'un fichier vers un autre
    Par Masmeta dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 05/02/2008, 15h04
  4. copie d'un fichier vers un autre d'un extrait XML
    Par MOMO321 dans le forum Modules
    Réponses: 2
    Dernier message: 05/07/2006, 11h21
  5. copie d'un fichier vers un autre serveur
    Par jexl dans le forum ASP
    Réponses: 4
    Dernier message: 20/12/2004, 16h04

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