Aller au contenu
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.

Démarrer successivement plusieurs fichiers .bat


tudgur
 Partager

Messages recommandés

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.

Lien à poster
Partager sur d’autres sites

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

 

Lien à poster
Partager sur d’autres sites

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"
Modifié par Drealine
Lien à poster
Partager sur d’autres sites

Posté(e)
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.

Lien à poster
Partager sur d’autres sites

Posté(e)
01 AMBERIEU-EN-BUGEY (259m)

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

Modifié par fiflot
Lien à poster
Partager sur d’autres 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

 

Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Partager

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...