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 :

fusionne des fichiers txt dans un certain ordre avec un script batch [Batch]


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Homme Profil pro
    ingenieur de maintenance
    Inscrit en
    Décembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingenieur de maintenance

    Informations forums :
    Inscription : Décembre 2016
    Messages : 10
    Points : 4
    Points
    4
    Par défaut fusionne des fichiers txt dans un certain ordre avec un script batch
    Bonjour,

    J aurai besoin de fusionner 4 fichiers ensemble dans un certain ordre avec deux contraintes: 1/ supprimer la première ligne de chaque fichier et 2/ajouter un saut de page dans le fichier fusionné entre chaque contenu des 4 fichiers.

    Ce sont des fichiers txt en faite.

    Les 4 fichiers seront seul dans un répertoire et doivent être copie dans cet ordre la.
    61203-20170313-014018937-PDT-GC-IN.dat
    61203-20170313-014028906-PDT-GD-IN.dat
    61203-20170313-014050109-PDT-GE-IN.dat
    61203-20170313-014048750-PDT-GS-IN.dat

    le fichier de sortie devra avoir le meme nom que le premier fichier copie mais avec un A a la place du C : 61203-20170313-014018937-PDT-GA-IN.dat et sera mis dans le dossier C:\users\61203.

    Je suis nouveau en Batch et je ne sais même pas si cela est possible, après pas mal de recherche j ai trouve des exemples assez proches de ce que je cherche mais mon niveau m empêche de les modifier...

    Merci d avance a ceux qui pourront m aider..

  2. #2
    Candidat au Club
    Homme Profil pro
    ingenieur de maintenance
    Inscrit en
    Décembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingenieur de maintenance

    Informations forums :
    Inscription : Décembre 2016
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Bonjour a Nouveau, je pense que les réponses sont déjà quelque part dans le forum d ou l absence de renonce...
    J ai pas mal avance sur le problème me reste une chose que je ne trouve pas:
    il me faudrait faire une boucle ou une variable prend différentes valeur qui seront déclarées dans le script:
    Par exemple a la première boucle la variable serait a 1 a la deuxième a 2 jusqu a 23 par exemple (les nombres dans mon cas ne se suive pas se sont des numéros de séries de machine.
    Merci de votre aide si vous le souhaitez.

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 177
    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 177
    Points : 5 738
    Points
    5 738
    Par défaut
    Tape ceci dans ton invite de commande :
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    FOR /L %a IN (1, 1, 23) DO @echo %a

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 177
    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 177
    Points : 5 738
    Points
    5 738
    Par défaut
    Sinon pour supprimer la premier ligne tu peux utiliser more

    Code batchj : Sélectionner tout - Visualiser dans une fenêtre à part
    more +1 "61203-20170313-014018937-PDT-GC-IN.dat"


    Si tu as d'autres questions pour finaliser ton script je regarderai.

  5. #5
    Candidat au Club
    Homme Profil pro
    ingenieur de maintenance
    Inscrit en
    Décembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingenieur de maintenance

    Informations forums :
    Inscription : Décembre 2016
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Merci pour votre aide :-)

    j ai pas mal avance et je galère pas mal ...

    J ai fait ce scripte qui fonctionne sur un premier PC win 10
    je l ai modifie pour fonctionner sur un deuxième pc win 7 et la ca plante sur la fonction type...
    çà me retourne une erreur "the system cannot find the path specified", j ai essaye plusieurs foi et les chemin sont bon (d ailleurs le unzip se passe correctement...)

    ensuite il efface bien les fichiers.

    je sèche complet.

    Merci d avance de votre temps et de vos compétence...

    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
    @echo off
    
    #!/bin/bash
    
    for %%f in (61203) do (
    "C:\Program Files\7-zip\7z.exe" e "C:\Users\toto\Documents\laserfile\tempdownload\%%f*GA-IN.lda" -o"C:\Users\toto\Documents\laserfile\tempdownload\temp" -r
    
    CD C:\Users\toto\Documents\laserfile\%%f
    
    type C:\Users\toto\Documents\laserfile\tempdownload\temp\%%f*GC-IN.dat>>%%f-%DATE:~6,4%%DATE:~0,2%%DATE:~3,2%-110503584-PDT-GA-IN.dat
    type C:\Users\toto\Documents\laserfile\tempdownload\temp\%%f*GD-IN.dat>>%%f-%DATE:~6,4%%DATE:~0,2%%DATE:~3,2%-110503584-PDT-GA-IN.dat
    type C:\Users\toto\Documents\laserfile\tempdownload\temp\%%f*GE-IN.dat>>%%f-%DATE:~6,4%%DATE:~0,2%%DATE:~3,2%-110503584-PDT-GA-IN.dat
    type C:\Users\toto\Documents\laserfile\tempdownload\temp\%%f*GS-IN.dat>>%%f-%DATE:~6,4%%DATE:~0,2%%DATE:~3,2%-110503584-PDT-GA-IN.dat
    
    
    del C:\Users\toto\Documents\laserfile\tempdownload\temp\%%f*GC-IN.dat
    del C:\Users\toto\Documents\laserfile\tempdownload\temp\%%f*GD-IN.dat
    del C:\Users\toto\Documents\laserfile\tempdownload\temp\%%f*GE-IN.dat
    del C:\Users\toto\Documents\laserfile\tempdownload\temp\%%f*GS-IN.dat
    
    )

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 177
    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 177
    Points : 5 738
    Points
    5 738
    Par défaut
    #!/bin/bash
    Nous ne connaissons pas ceci.


    for %%f in (61203) do (
    Que veux tu faire avec ceci ? Car %%f vaudra 61203.


    Essai d'avancer méthodiquement, est ce que l'affichage correspond à ce que tu attend ?
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
    for %%f in (61203) do (
    echo "C:\Program Files\7-zip\7z.exe" e "C:\Users\toto\Documents\laserfile\tempdownload\%%f*GA-IN.lda" -o"C:\Users\toto\Documents\laserfile\tempdownload\temp" -r
    echo CD C:\Users\toto\Documents\laserfile\%%f
    echo type C:\Users\toto\Documents\laserfile\tempdownload\temp\%%f*GC-IN.dat>>%%f-%DATE:~6,4%%DATE:~0,2%%DATE:~3,2%-110503584-PDT-GA-IN.dat
    echo del C:\Users\toto\Documents\laserfile\tempdownload\temp\%%f*GC-IN.dat
    )

  7. #7
    Candidat au Club
    Homme Profil pro
    ingenieur de maintenance
    Inscrit en
    Décembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingenieur de maintenance

    Informations forums :
    Inscription : Décembre 2016
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Bonjour Eric et merci de ton aide :-)))

    Je vais essayer d expliquer :-)

    alors le !/bin/bash est un truc que j ai vu en regardant un cours en ligne de batch, j avoue j ai un peu appliqué sans comprendre lol

    La ligne
    for %%f in (61203) do (
    N est qu un test je vais mettre par la suite 23 numéros de série différent, car je cherche a automatiser une tache repetitive.
    J'ai fait tourner le script que tu m as envoyé et tout se passe correctement, sauf la fonction type, dans le retour j ai a la place de cette fonction " the system cannot find the path specified".
    je sais pas si je fais une erreur de formatage...
    Peut être est ce un détail important, le PC sur lequel le script tourne est un PC pro ou je ne suis pas admin (j ai des droits d écriture la ou je veux écrire avec ce script) et tourne sur une version américaine de windows.

    Voila j espéré avoir répondu aux questions.

    Et encore une foie merci pour ton aide.

    Salutation,

  8. #8
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 177
    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 177
    Points : 5 738
    Points
    5 738
    Par défaut
    Et que te donne ceci ?

    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @echo off
    for %%f in (61203) do (
    echo %%f-%DATE:~6,4%%DATE:~0,2%%DATE:~3,2%-110503584-PDT-GA-IN.dat
    )

  9. #9
    Candidat au Club
    Homme Profil pro
    ingenieur de maintenance
    Inscrit en
    Décembre 2016
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : ingenieur de maintenance

    Informations forums :
    Inscription : Décembre 2016
    Messages : 10
    Points : 4
    Points
    4
    Par défaut
    Je crois que tu as trouve...

    ca donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    61203-/03/Tu 1-110503584-PDT-GA-IN.dat
    Alors que je voudrais

    61203-20171003-110503584-PDT-GA-IN.dat

    je vais regarder comment afficher la date correctement...

    J imagine que / dans un nom de fichier retourne une erreur?

    En tout cas merci pour ton efficacité !!!

    Et encore merci de m aider, même si j imagine que mes questions doivent frôler l ignorance total!

    Bon apres recherche et modification ca marche!!!

    En faite sur un le PC win 7 le retour de la date etait : Tue 10/03/2017

    j ai donc modifie le fichier de sortie du type

    de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %%f-%DATE:~6,4%%DATE:~0,2%%DATE:~3,2%-110503584-PDT-GA-IN.dat
    a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %%f-%DATE:~10,4%%DATE:~4,2%%DATE:~7,2%-110503584-PDT-GA-IN.dat
    Et ca marche!!

    Merci encore eric :-)

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

Discussions similaires

  1. sauter des fichier .pas dans le debuggeur avec F7
    Par roland34 dans le forum EDI
    Réponses: 5
    Dernier message: 11/06/2013, 20h16
  2. Importer des fichiers CSV dans SQL Server avec SSIS
    Par nathantahiti dans le forum SSIS
    Réponses: 4
    Dernier message: 02/08/2011, 17h09
  3. Réponses: 1
    Dernier message: 26/03/2010, 00h48
  4. [AC-2007] déplacer des fichiers txt dans un autre répertoire
    Par tibofo dans le forum VBA Access
    Réponses: 2
    Dernier message: 10/01/2010, 11h40
  5. Réponses: 1
    Dernier message: 26/03/2009, 17h56

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