Automatisation avec les batch .bat

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

  • Votes
  • Date
  • Date décroissante
  1. 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
    1. 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.
      1. tu travailles avec quel windows ?
      2. Windows Xp SP3
      3. 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.
    2. 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.
      1. 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
    3. Contributeur
      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 (
      1. 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.
        1. Contributeur
          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 
          1. 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.
          2. Contributeur
            il faut mettre des répertoires qui existent
          3. Effectivement, j'ai créé ces deux répertoires pour qu'ils servent pour essai