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 :

Copie et datation fichiers [Batch]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Par défaut Copie et datation fichiers
    Avant que je ne devienne fou, je dois vous consulter.

    Voici un fichier bat que j'ai écrit pour copier, déplacer et renommer quelques fichiers situés à différents emplacements.

    L'application fonctionne parfois, puis pour une raison que j'ignore, ne fonctionne plus. Impossible de comprendre le contexte dans lequel il foire ou fonctionne.

    Le fichier est installé sur un serveur (précisément sur Z:\Données WAM\21 Expéditions - Transport\TNT\DB\archives).
    Ce serveur tourne sous Server2008.

    Il est exécuté par des machines qui se connectent donc à ce lecteur reseau.

    Hier soir, quand je me suis couché, le bat fonctionnait parfaitement de n'importe quelle machine.
    Ce matin, le renommage ne fonctionnait plus.
    Cet après midi, il s'est remis à fonctionner.
    Ce soir, il ne fonctionne plus.

    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
    set jour=%date:~0,2%
    set mois=%date:~3,2%
    set annee=%date:~8,2%
    set heure=%time:~0,2%
    set minute=%time:~3,2%
    set seconde=%time:~6,2%
    set dixieme=%time:~9,2%
    move ..\Smeadt01.idx smeadt01.idx
    move Smeadt01.idx Smeadt01_%annee%%mois%%jour%%heure%%minute%%seconde%.idx
    move ..\Smeadt01.dat smeadt01.dat
    move Smeadt01.dat Smeadt01_%annee%%mois%%jour%%heure%%minute%%seconde%.dat
    copy vierge\smeadt01.idx ..\Smeadt01.idx
    copy vierge\smeadt01.dat ..\Smeadt01.dat
    COPY C:\TNT\Ficadr.csv C:\TNT\Ficadr.%annee%%mois%%jour%%heure%%minute%%seconde%.csv
    move C:\TNT\Ficadr.csv Z:\Ficadr_%annee%%mois%%jour%%heure%%minute%%seconde%.csv

    Chose importante, j'ai également testé une partie du script en plaçant le bat en local sur C:/TNT/, et je rencontre exactement le même phénomène!

    A votre bon cœur !!!

  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,

    Crée un fichier LOG en parallèle pour pouvoir trouver ton problème.

    En faisant un ECHO de tes moves dans un fichier tu trouveras certainement où ça coinçe :

    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
    set jour=%date:~0,2%
    set mois=%date:~3,2%
    set annee=%date:~8,2%
    set heure=%time:~0,2%
    set minute=%time:~3,2%
    set seconde=%time:~6,2%
    set dixieme=%time:~9,2%
    
    (echo move ..\Smeadt01.idx smeadt01.idx
    echo move Smeadt01.idx Smeadt01_%annee%%mois%%jour%%heure%%minute%%seconde%.idx
    echo move ..\Smeadt01.dat smeadt01.dat
    echo move Smeadt01.dat Smeadt01_%annee%%mois%%jour%%heure%%minute%%seconde%.dat
    echo copy vierge\smeadt01.idx ..\Smeadt01.idx
    echo copy vierge\smeadt01.dat ..\Smeadt01.dat
    echo COPY C:\TNT\Ficadr.csv C:\TNT\Ficadr.%annee%%mois%%jour%%heure%%minute%%seconde%.csv
    echo move C:\TNT\Ficadr.csv Z:\Ficadr_%annee%%mois%%jour%%heure%%minute%%seconde%.csv
    echo.
    echo -----------------------------
    echo.)>>Test.log
    
    move ..\Smeadt01.idx smeadt01.idx
    move Smeadt01.idx Smeadt01_%annee%%mois%%jour%%heure%%minute%%seconde%.idx
    move ..\Smeadt01.dat smeadt01.dat
    move Smeadt01.dat Smeadt01_%annee%%mois%%jour%%heure%%minute%%seconde%.dat
    copy vierge\smeadt01.idx ..\Smeadt01.idx
    copy vierge\smeadt01.dat ..\Smeadt01.dat
    COPY C:\TNT\Ficadr.csv C:\TNT\Ficadr.%annee%%mois%%jour%%heure%%minute%%seconde%.csv
    move C:\TNT\Ficadr.csv Z:\Ficadr_%annee%%mois%%jour%%heure%%minute%%seconde%.csv
    Ensuite analyse le TEST.LOG et regarde si les commandes envoyées sont correct..


  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Par défaut
    Merci Sachadee,
    je viens d'insérer ton script. Déjà, il semblerait qu'il apprécie, car il fonctionne parfaitement... Mais on va voir ce qu'il se passe avec l'épreuve du temps et la multiplication des tests.

    Citation Envoyé par sachadee Voir le message
    Salut,

    Crée un fichier LOG en parallèle pour pouvoir trouver ton problème.

    En faisant un ECHO de tes moves dans un fichier tu trouveras certainement où ça coinçe :

    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
    set jour=%date:~0,2%
    set mois=%date:~3,2%
    set annee=%date:~8,2%
    set heure=%time:~0,2%
    set minute=%time:~3,2%
    set seconde=%time:~6,2%
    set dixieme=%time:~9,2%
    
    (echo move ..\Smeadt01.idx smeadt01.idx
    echo move Smeadt01.idx Smeadt01_%annee%%mois%%jour%%heure%%minute%%seconde%.idx
    echo move ..\Smeadt01.dat smeadt01.dat
    echo move Smeadt01.dat Smeadt01_%annee%%mois%%jour%%heure%%minute%%seconde%.dat
    echo copy vierge\smeadt01.idx ..\Smeadt01.idx
    echo copy vierge\smeadt01.dat ..\Smeadt01.dat
    echo COPY C:\TNT\Ficadr.csv C:\TNT\Ficadr.%annee%%mois%%jour%%heure%%minute%%seconde%.csv
    echo move C:\TNT\Ficadr.csv Z:\Ficadr_%annee%%mois%%jour%%heure%%minute%%seconde%.csv
    echo.
    echo -----------------------------
    echo.)>>Test.log
    
    move ..\Smeadt01.idx smeadt01.idx
    move Smeadt01.idx Smeadt01_%annee%%mois%%jour%%heure%%minute%%seconde%.idx
    move ..\Smeadt01.dat smeadt01.dat
    move Smeadt01.dat Smeadt01_%annee%%mois%%jour%%heure%%minute%%seconde%.dat
    copy vierge\smeadt01.idx ..\Smeadt01.idx
    copy vierge\smeadt01.dat ..\Smeadt01.dat
    COPY C:\TNT\Ficadr.csv C:\TNT\Ficadr.%annee%%mois%%jour%%heure%%minute%%seconde%.csv
    move C:\TNT\Ficadr.csv Z:\Ficadr_%annee%%mois%%jour%%heure%%minute%%seconde%.csv
    Ensuite analyse le TEST.LOG et regarde si les commandes envoyées sont correct..


  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Par défaut
    Citation Envoyé par wamkey Voir le message
    Merci Sachadee,
    je viens d'insérer ton script. Déjà, il semblerait qu'il apprécie, car il fonctionne parfaitement... Mais on va voir ce qu'il se passe avec l'épreuve du temps et la multiplication des tests.
    Voici les premiers résultats. Aujourd'hui, cela n'a pas fonctionné. Je viens de faire un test à l'instant, et il ne fait que la moitié du boulot.
    Je ne sais pas trop ce que je peux tirer de ces logs. Peux-tu me dire un peu ce que je peux en faire. Je n'ai absolument rien changé au bat depuis le début. Donc manifestement, il y a quelque chose dans l'environnement qui gène l'exécution du programme.

    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    move ..\Smeadt01.idx smeadt01.idx
    move Smeadt01.idx Smeadt01_140129175344.idx
    move ..\Smeadt01.dat smeadt01.dat
    move Smeadt01.dat Smeadt01_140129175344.dat
    copy vierge\smeadt01.idx ..\Smeadt01.idx
    copy vierge\smeadt01.dat ..\Smeadt01.dat
    COPY C:\TNT\Ficadr.csv C:\TNT\Ficadr.140129175344.csv
    move C:\TNT\Ficadr.csv Z:\Ficadr_140129175344.csv
    
    -----------------------------
    
    move ..\Smeadt01.idx smeadt01.idx
    move Smeadt01.idx Smeadt01_140129180518.idx
    move ..\Smeadt01.dat smeadt01.dat
    move Smeadt01.dat Smeadt01_140129180518.dat
    copy vierge\smeadt01.idx ..\Smeadt01.idx
    copy vierge\smeadt01.dat ..\Smeadt01.dat
    COPY C:\TNT\Ficadr.csv C:\TNT\Ficadr.140129180518.csv
    move C:\TNT\Ficadr.csv Z:\Ficadr_140129180518.csv
    
    -----------------------------
    
    move ..\Smeadt01.idx smeadt01.idx
    move Smeadt01.idx Smeadt01_140129181922.idx
    move ..\Smeadt01.dat smeadt01.dat
    move Smeadt01.dat Smeadt01_140129181922.dat
    copy vierge\smeadt01.idx ..\Smeadt01.idx
    copy vierge\smeadt01.dat ..\Smeadt01.dat
    COPY C:\TNT\Ficadr.csv C:\TNT\Ficadr.140129181922.csv
    move C:\TNT\Ficadr.csv Z:\Ficadr_140129181922.csv
    
    -----------------------------
    
    move ..\Smeadt01.idx smeadt01.idx
    move Smeadt01.idx Smeadt01_140130164333.idx
    move ..\Smeadt01.dat smeadt01.dat
    move Smeadt01.dat Smeadt01_140130164333.dat
    copy vierge\smeadt01.idx ..\Smeadt01.idx
    copy vierge\smeadt01.dat ..\Smeadt01.dat
    COPY C:\TNT\Ficadr.csv C:\TNT\Ficadr.140130164333.csv
    move C:\TNT\Ficadr.csv Z:\Ficadr_140130164333.csv
    
    -----------------------------
    
    move ..\Smeadt01.idx smeadt01.idx
    move Smeadt01.idx Smeadt01_140131 50407.idx
    move ..\Smeadt01.dat smeadt01.dat
    move Smeadt01.dat Smeadt01_140131 50407.dat
    copy vierge\smeadt01.idx ..\Smeadt01.idx
    copy vierge\smeadt01.dat ..\Smeadt01.dat
    COPY C:\TNT\Ficadr.csv C:\TNT\Ficadr.140131 50407.csv
    move C:\TNT\Ficadr.csv Z:\Ficadr_140131 50407.csv
    
    -----------------------------

  5. #5
    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,

    Comme tu peux le constater dans la dernière partie du LOG on voit que un espace a été créer dans le nom du fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    move Smeadt01.idx Smeadt01_140131 50407.idx
    Donc pour l'interpréteur tu as 3 arguments pour ton move ou copy.
    Ce qui doit être la source de ton problème.

    Apparemment si c'est ta variable %heure% qui pose un problème. Il y a un espace qui est rajouté.

    Si cet espace ne te dérange pas dans le fichier de sortie tu peux simplement mettre tes chemins entre string.

    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
    set jour=%date:~0,2%
    set mois=%date:~3,2%
    set annee=%date:~8,2%
    set heure=%time:~0,2%
    set minute=%time:~3,2%
    set seconde=%time:~6,2%
    set dixieme=%time:~9,2%
    move ..\Smeadt01.idx smeadt01.idx
    move Smeadt01.idx "Smeadt01_%annee%%mois%%jour%%heure%%minute%%seconde%.idx"
    move ..\Smeadt01.dat smeadt01.dat
    move Smeadt01.dat "Smeadt01_%annee%%mois%%jour%%heure%%minute%%seconde%.dat"
    copy vierge\smeadt01.idx ..\Smeadt01.idx
    copy vierge\smeadt01.dat ..\Smeadt01.dat
    COPY C:\TNT\Ficadr.csv "C:\TNT\Ficadr.%annee%%mois%%jour%%heure%%minute%%seconde%.csv"
    move C:\TNT\Ficadr.csv "Z:\Ficadr_%annee%%mois%%jour%%heure%%minute%%seconde%.csv"
    Voilà ça ne devrait plus planter, mais le nom de sortie de ton fichier aura l'espace. Donc si tu veux supprimer cette espace, fait quelque test a différente heures pour voir où ça cloche.

    Etant en déplacement (et sous MAC OS) je ne peux pas testé.

    Mais tu as déjà une solution provisoire.


  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 55
    Par défaut
    Super gros merci Sachadee.

    Est-ce que je n'ai pas intérêt à remettre les "echo" pour contrôler ce qui se passe?

    Citation Envoyé par sachadee Voir le message
    Salut,

    Comme tu peux le constater dans la dernière partie du LOG on voit que un espace a été créer dans le nom du fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    move Smeadt01.idx Smeadt01_140131 50407.idx
    Donc pour l'interpréteur tu as 3 arguments pour ton move ou copy.
    Ce qui doit être la source de ton problème.

    Apparemment si c'est ta variable %heure% qui pose un problème. Il y a un espace qui est rajouté.

    Si cet espace ne te dérange pas dans le fichier de sortie tu peux simplement mettre tes chemins entre string.

    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
    set jour=%date:~0,2%
    set mois=%date:~3,2%
    set annee=%date:~8,2%
    set heure=%time:~0,2%
    set minute=%time:~3,2%
    set seconde=%time:~6,2%
    set dixieme=%time:~9,2%
    move ..\Smeadt01.idx smeadt01.idx
    move Smeadt01.idx "Smeadt01_%annee%%mois%%jour%%heure%%minute%%seconde%.idx"
    move ..\Smeadt01.dat smeadt01.dat
    move Smeadt01.dat "Smeadt01_%annee%%mois%%jour%%heure%%minute%%seconde%.dat"
    copy vierge\smeadt01.idx ..\Smeadt01.idx
    copy vierge\smeadt01.dat ..\Smeadt01.dat
    COPY C:\TNT\Ficadr.csv "C:\TNT\Ficadr.%annee%%mois%%jour%%heure%%minute%%seconde%.csv"
    move C:\TNT\Ficadr.csv "Z:\Ficadr_%annee%%mois%%jour%%heure%%minute%%seconde%.csv"
    Voilà ça ne devrait plus planter, mais le nom de sortie de ton fichier aura l'espace. Donc si tu veux supprimer cette espace, fait quelque test a différente heures pour voir où ça cloche.

    Etant en déplacement (et sous MAC OS) je ne peux pas testé.

    Mais tu as déjà une solution provisoire.


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

Discussions similaires

  1. [VB6] Impact de la copie d'un fichier
    Par Cereal123 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 31/03/2006, 07h57
  2. Réponses: 12
    Dernier message: 07/12/2005, 18h42
  3. copie de base, fichier mdw, perte des droits
    Par hades666evil dans le forum Access
    Réponses: 2
    Dernier message: 14/09/2005, 17h06
  4. Copie d'un fichier sans montage avec Samba
    Par jean-jacques varvenne dans le forum Réseau
    Réponses: 5
    Dernier message: 14/07/2005, 11h31
  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