Automatisation avec les batch .bat

aziz_alg80 Messages postés 427 Statut Membre -  
aziz_alg80 Messages postés 427 Statut Membre -
Bonjour,
Saut tout le monde ;

Je viens d'éditer un fichier .Bat qui me permet de déplacer un (ou plusieurs) fichier d'un répertoire Rép1 vers un autre répertoire Rép2. La commande utilisée pour cela est très simple (sinon je n'arriverais jamais à le faire tout seul) : move D:Rép1\*.* Rép2

Le rép1 : est utilisé par un logiciel de formulation de commandes d'achat (Ce dernier créé dedans un fichier pour chaque commande d'achat)

Le rép2 : dans lequel je transfère ces fichiers est utilisé par un autre logiciel de facturation (pour facturer les commandes d'achat)

Avec le Batch que je viens de créer tout va bien, le double clic suffit, mais ce que je veux bien c'est de transférer automatiquement les fichiers vers le rép2 une fois sont créés par le logiciel de formulation de commandes dans le rép1.

J'espère que c'est clair, sinon je reste à votre disposition pour des informations complémentaires.
Merci d'avance.

6 réponses

  1. LUDO
     
    salut,

    ---------------------------------------------------------------------------------------

    @echo off

    rem Le script tournera en permanence

    rem Saisir le répertoire source au niveau de la variable REP_SOURCE
    rem Saisir le répertoire de destination au niveau de la variable REP_DEST

    rem Au niveau de la commande ping, ici le nombre 20 correspond
    rem à l'attente en seconde entre 2 tests de présence de fichier

    set REP_SOURCE=D:\rep1
    set REP_DEST=D:\rep2

    :loop
    for /f %%i in ('dir "%REP_SOURCE%" ^| find "fichier"') do (
    if %%i GTR 0 move "%REP_SOURCE%\*.*" "%REP_DEST%\"
    ping -n 20 127.0.0.1 >nul 2>&1
    )
    goto loop

    ----------------------------------------------------------------------------------------

    voilou tiens moi au jus si ça te correspond
    a+ bon courage
    0
  2. aziz_alg80 Messages postés 427 Statut Membre 22
     
    Salut LUDO

    Tout d'abord je te remercie pour l'intérêt que tu as accordé à mon problème et pour le petit programme que tu as édité.

    Quant à son exécution, ça donne le résultat suivant:
    Fichier introuvable
    Fichier introuvable
    Fichier introuvable
    Fichier introuvable
    Fichier introuvable ....

    sans qu'aucun fichier ne soit transféré.

    Encore une fois MERCI BEAUCOUP.
    0
    1. LUDO
       
      tu travailles avec quel windows ?
      0
    2. aziz_alg80 Messages postés 427 Statut Membre 22
       
      Windows Xp SP3
      0
    3. aziz_alg80 Messages postés 427 Statut Membre 22
       
      Salut,
      Juste pour l'information, le même programme je l'ai essayé sous un Windows 7 mais ça a donné le même résultat.
      0
  3. heyquem Messages postés 808 Statut Membre 131
     
    salut

    Quel est le logiciel de formulation de commandes d'achat ?
    Il est écrit en quoi ?

    Plutôt que de faire tourner en permanence un fichier batch qui va détecter l'apparition d'un fichier dans rep1 pour le transférer dans rep2, si j'ai bien compris le principe du code de LUDO, il vaudrait mieux à mon avis chercher à inclure dans le logiciel de formulation de commandes d'achat un snippet qui réalise ce transfert à chaque fois qu'un nouveau fichier est créé dans rep1.
    0
    1. aziz_alg80 Messages postés 427 Statut Membre 22
       
      Salut,

      Il s'agit d'un logiciel de réception de commande, je ne sais pas en quel language est t-il écrit, ni avec quel outil est t-il développé, ce qui est sûr c'est qu' on peut rien toucher. ton idée est claire, pratique et logique mais malheureusement c'est pas possible dans ce cas.
      Je te remercie pour ton intérêt ..... Merci beaucoup
      0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    essayer en changeant 1 ligne dans le script de LUDO
    changer
    for /f %%i in ('dir "%REP_SOURCE%" ^| find "fichier"') do (
    par
    for /f %%i in (' dir /b "%REP_SOURCE%" ^| find /c /v "" ') do (
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. aziz_alg80 Messages postés 427 Statut Membre 22
     
    Hello
    J'ai essayé avec le changement indiqué, et après l'exécussion ça a donné le résultat suivant:

    Fichier introuvable un expression qui se répète à chaque 20 seconde mais saus qu'aucun fichier ne soit transféré malgré que ça en existe dans le rep1.
    0
  7. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    j'ai testé celui là, modifier REP_SOURCE et REP_DEST
    @echo off   
    set REP_SOURCE=.   
    set REP_DEST=..\zzz   
    :loop   
    for /f %%i in (' dir /b "%REP_SOURCE%" ^| find /c /v "" ') do (   
    if %%i GTR 0  move "%REP_SOURCE%\*.*" "%REP_DEST%\"   
    ping -n 20 127.0.0.1 >nul 2>&1   
    )   
    goto loop 
    0
    1. aziz_alg80 Messages postés 427 Statut Membre 22
       
      Qu'est ce que vous voulez dire par "modifier REP_SOURCE et REP_DEST " ?
      Pour un exemple de tste, j'ai mis pour le répertoire source: D:\Rep1 et pour le répertoire de destination : D:\Rep2.
      0
    2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      il faut mettre des répertoires qui existent
      0
    3. aziz_alg80 Messages postés 427 Statut Membre 22
       
      Effectivement, j'ai créé ces deux répertoires pour qu'ils servent pour essai
      0