Jump to content
Les Forums d'Infoclimat

Ce tchat, hébergé sur une plateforme indépendante d'Infoclimat, est géré et modéré par une équipe autonome, sans lien avec l'Association.
Un compte séparé du site et du forum d'Infoclimat est nécessaire pour s'y connecter.

tudgur

Démarrer successivement plusieurs fichiers .bat

Recommended Posts

Bonjour,
Pour différentes raisons, je désire me passer de logiciels FTP pour envoyer mes fichiers sur différents serveurs.
Mon site est hébergé chez Nuxit, mais, en cas de problème, je l'héberge aussi (gratuitement) chez Free.
D'autre part, pour StatIC, j'envoie aussi un fichier chez Infoclimat.
A ces fins, j'ai donc créé trois fichiers .bat que je lance avec un autre .bat dont voici le code :

@echo off
echo ########################################################################
echo #        "ATTENTION envoi des fichiers NUXIT FREE et StatIC !!!"       #
echo ########################################################################
sleep 5
start /d"D:\SCRIPT" ENVOI_FTP_FICHIERS_JOUR.BAT"
sleep 10
start /d"D:\SCRIPT" ENVOI_FTP_FICHIERS_JOUR_FREE.BAT
sleep 10
start /d"D:\SCRIPT" ENVOI_STATIC.BAT
exit

Ce dernier est lancé automatiquement par WsWin après lecture et création des différents fichiers : données, graphiques....

Mon problème, c'est que les trois .bat s'ouvrent en même temps.
Ils font le boulot sans problème mais j'aurais souhaité que le 2ième démarre quand le premier est fini et de même pour le troisième.
D'autre part, la commande sleep semble ne pas fonctionner.

J'aurais aimé un petit temps de latence (5 à 10 s) avant le lancement du premier afin d'empêcher ce lancement en cas de problème de mesures par exemple.

 

Une idée ?

Merci.

Share this post


Link to post
Share on other sites
Posted

Location : Sciez

Bonjour,

 

Essaie plutôt d'utiliser "timeout" :

@echo off
echo ########################################################################
echo #        "ATTENTION envoi des fichiers NUXIT FREE et StatIC !!!"       #
echo ########################################################################
timeout /T 5 /NOBREAK
start /d"D:\SCRIPT" ENVOI_FTP_FICHIERS_JOUR.BAT"
timeout /T 10 /NOBREAK
start /d"D:\SCRIPT" ENVOI_FTP_FICHIERS_JOUR_FREE.BAT
timeout /T 10 /NOBREAK
start /d"D:\SCRIPT" ENVOI_STATIC.BAT
exit

 

Share this post


Link to post
Share on other sites
Posted (edited)

Location : Jussy (02)
Il y a 1 heure, tudgur a dit :

Bonjour,
Pour différentes raisons, je désire me passer de logiciels FTP pour envoyer mes fichiers sur différents serveurs.
Mon site est hébergé chez Nuxit, mais, en cas de problème, je l'héberge aussi (gratuitement) chez Free.
D'autre part, pour StatIC, j'envoie aussi un fichier chez Infoclimat.
A ces fins, j'ai donc créé trois fichiers .bat que je lance avec un autre .bat dont voici le code :


@echo off
echo ########################################################################
echo #        "ATTENTION envoi des fichiers NUXIT FREE et StatIC !!!"       #
echo ########################################################################
sleep 5
start /d"D:\SCRIPT" ENVOI_FTP_FICHIERS_JOUR.BAT"
sleep 10
start /d"D:\SCRIPT" ENVOI_FTP_FICHIERS_JOUR_FREE.BAT
sleep 10
start /d"D:\SCRIPT" ENVOI_STATIC.BAT
exit

Ce dernier est lancé automatiquement par WsWin après lecture et création des différents fichiers : données, graphiques....

Mon problème, c'est que les trois .bat s'ouvrent en même temps.
Ils font le boulot sans problème mais j'aurais souhaité que le 2ième démarre quand le premier est fini et de même pour le troisième.
D'autre part, la commande sleep semble ne pas fonctionner.

J'aurais aimé un petit temps de latence (5 à 10 s) avant le lancement du premier afin d'empêcher ce lancement en cas de problème de mesures par exemple.

 

Une idée ?

Merci.

Voici un lien qui pourra t'aider avec les arguments https://ss64.com/nt/start.html

 

Si non en passant l’argument /wait, il va attendre que le proccess soit fini avant de continuer. 

 

START /wait /d"D:\SCRIPT" ENVOI_FTP_FICHIERS_JOUR.BAT"
Edited by Drealine

Share this post


Link to post
Share on other sites
Posted

Location : Isèrois, mais proche de Lyon (Sud) : Chuzelles - 260m

et powershell, ça ne te tente pas ?

A minima tu crées juste  ton script de lancement en powershell et tu auras accès à une librairie bien plus vaste.

Share this post


Link to post
Share on other sites
Posted (edited)

Location : 01 AMBERIEU-EN-BUGEY (255m)

avec VB6 tu pourrais le faire facilement avec 3 lignes de code avec la commande SHELLWAIT qui attends que ton bat lançé soit fini pour lancer le 2 eme et ainsi de suite

 

 

Encore plus simple en VBScript ( ecrire ce code avec le notepad et enregistrer le fichier avec l'extension VBS et cliquer sur le fichier pour le lancer)

 

Set wshell = CreateObject("WScript.Shell")

WShell.Run WShell.ExpandEnvironmentStrings("%COMSPEC%") _
& " /c   c:\1.bat"  

WScript.Sleep 5000

WShell.Run WShell.ExpandEnvironmentStrings("%COMSPEC%") _
& " /c  c:\2.bat"  

WScript.Sleep 5000

WShell.Run WShell.ExpandEnvironmentStrings("%COMSPEC%") _
& " /c  c:\3.bat"  

 

 

 

je n'ai pas essayé sans WScript.Sleep 5000 pour voir si le 2eme bat attends que le 1er bat soit fini

Edited by fiflot

Share this post


Link to post
Share on other sites

Merci beaucoup pour vos réponses.
j'avais essayé avec le paramètre /wait mais ça ne marchait pas...
Powershell et VBScript, je ne connais pas du tout.
La méthode de jackT fonctionne parfaitement, c'est tout à fait ce que je cherchais.

 

Petites questions cependant :

   -  A quoi sert le paramètre /d avant le chemin ?

   - Pourquoi écrire  

"D:\SCRIPT" ENVOI_FTP_FICHIERS_JOUR.BAT

et non pas 

D:\SCRIPT\ENVOI_FTP_FICHIERS_JOUR.BAT

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...