Vista : synchroniser deux (instances) batchs

Le
Méta-MCI \(MVP\)
Bonjour !


Vista a plusieurs commandes intéressantes pour le batching.
Par exemple, WAITFOR

Waitfor permet d'envoyer ou d'attendre un signal inter-processus. Donc
de synchroniser des instances de batchs.

Petit exemple. Enregistrez les deux batch suivants :

::fichier wreceiv.bat
@echo off
echo Avant attente
waitfor /T 3600 TACHE2FINIE
echo Attente terminée


::fichier wsend.bat
@echo off
echo Envoi
waitfor /SI TACHE2FINIE


Ouvrez deux invites de commande (dans deux fenêtres différentes).
Dans la première, lancez wreceiv.bat ; le script se lance, et se met
en attente.
Dans la seconde, lancez wsend.bat ; le script se lance et rend la
main. Mais, cela à envoyé un signal, reçu par la première fenêtre, qui
peut ainsi terminer son attente.

Petite contrainte : un signal peut être surveillé depuis une seule
instance à la fois.


@-salutations

Michel Claveau
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles RONSIN
Le #703811
"Méta-MCI (MVP)" déc. 2007 10:54:45, écrivait ceci:

Bonjour !
Salut,


Vista a plusieurs commandes intéressantes pour le batching.
Par exemple, WAITFOR


Très pratique pour synchroniser des applis sur des postes différents.
Mais ça existe depuis windows 95 (dans un des sous dossiers du CD) ;-)

MCI \(ex do ré Mi chel la si do\) [MVP]
Le #703808
Salut !

Très pratique pour synchroniser des applis sur des postes différents.
Mais ça existe depuis windows 95


Ne voudrais tu pas parler des anciens outils de scriptage des connexions
réseau ?
Je crois que le WAITFOR nouveau est assez différent : communication
interprocessus locale, mais pas en réseau.

Je suppose qu'il passe par les messages windows ; mais, j'aimerais bien
savoir lequel, pour pouvoir synchroniser des batchs avec d'autres
logiciels (juste par curiosité).


Sinon, VISTA marque aussi le retour de FORFILES, Whoami, SetX, Choice,
Timeout, Where, etc. et a beaucoup de nouveautés.


@+

Michel Claveau

Gilles RONSIN
Le #703807
"MCI (ex do ré Mi chel la si do) [MVP]"
écrivait ceci:

Salut !
Yo !


Très pratique pour synchroniser des applis sur des postes
différents. Mais ça existe depuis windows 95


Ne voudrais tu pas parler des anciens outils de scriptage des
connexions réseau ?
Je crois que le WAITFOR nouveau est assez différent :
communication interprocessus locale, mais pas en réseau.
Tu as excité ma curiosité :-)

------------------------------------------------------------------
WaitFor fonctionne de deux façons :

Syntaxe 1 : pour envoyer un signal
WAITFOR [/S système [/U utilisateur [/P [mot_de_passe]]]] /SI
signal

Syntaxe 2 : pour attendre un signal
WAITFOR [/T délai_maximal] signal

Description :
Cet outil envoie, ou attend, un signal sur un ordinateur. Si /S
n'est pas
spécifié, le signal est envoyé à tous les ordinateurs dans le
domaine. Si /S est spécifié, le signal n'est envoyé qu'à
l'ordinateur spécifié.
---------------------------------------------------------------------
Donc c'est bien la même fonctionnalité que l'ancien WAITFOR (avec des
options supplémentaires comme préciser la cible du signal).

Je suppose qu'il passe par les messages windows ; mais, j'aimerais
bien savoir lequel, pour pouvoir synchroniser des batchs avec
d'autres logiciels (juste par curiosité).


A l'époque, il passait par un message NetBIOS je crois. J'avais fait
une page avec des exemples (tiens ce n'est pas W95 mais W98
l'apparition)
http://gilles.ronsin.free.fr/#waitfor

Sinon, VISTA marque aussi le retour de FORFILES, Whoami, SetX,
Choice, Timeout, Where, etc. et a beaucoup de nouveautés.


Va falloir que j'aille faire une opération de reconnaissance alors.
;-)


Méta-MCI \(MVP\)
Le #709307
Bonsoir, Gilles !

J'avions point vu le fonctionnement en réseau. Merci de m'avoir ouvert
les yeux.

Alors, ça marche (je viens de tester, entre deux machines virtuelles).
Mais, j'ai été obligé d'utiliser /S adresseIP pour spécifier
l'ordinateur "receveur".

Et puis, aussi, ça fonctionne en interactif (ça peut être utile).

Bonne nuit.

MCI
Gilles LAURENT [MVP]
Le #709306
"MCI (ex do ré Mi chel la si do) [MVP]"
news:
| Salut !

Bonsoir,

| Je suppose qu'il passe par les messages windows ; mais, j'aimerais
| bien savoir lequel, pour pouvoir synchroniser des batchs avec d'autres
| logiciels (juste par curiosité).

La technologie IPC utilisée par l'outil waitfor.exe est le mailslot
(datagramme). Pour envoyer un signal, il suffit d'écrire une chaîne de
caractères quelconque dans le mailslot. Par exemple, pour envoyer le
signal "alert" à l'ordinateur local en attente de ce même signal, il
suffit d'écrire une chaîne de caractère dans le mailslot suivant :
\.mailslotwaitfor.exealert

Pour envoyer le signal "alert" à l'ordinateur local en VBScript :

--- Coupez ici : WriteToMailslot.vbs ---
Set oFs=CreateObject("Scripting.FileSystemObject")
Set oMailslot=oFs.CreateTextFile("\.mailslotwaitfor.exealert")
oMailslot.WriteLine
--- Coupez ici : WriteToMailslot.vbs ---

Note: Aucune vérification n'est effectuée par l'outil waitfor.exe
concernant le message (datagramme) transmis :-( Pour cette raison, je
n'utilise jamais cet outil dans un environnement de production.

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Gilles RONSIN
Le #709085
"Gilles LAURENT [MVP]" 20:18:57, écrivait ceci:

Salut,

La technologie IPC utilisée par l'outil waitfor.exe est le
mailslot (datagramme). Pour envoyer un signal, il suffit d'écrire
Je ne connaissait pas cette technologie.


Note: Aucune vérification n'est effectuée par l'outil waitfor.exe
concernant le message (datagramme) transmis :-( Pour cette raison,
je n'utilise jamais cet outil dans un environnement de production.


Ca peut toutefois toujours rendre des petits services.

Merci pour ces précisions en tout cas.

Gilles RONSIN
Le #709084
"Méta-MCI (MVP)" déc. 2007 19:28:54, écrivait ceci:

Bonsoir, Gilles !
Salut,


Alors, ça marche (je viens de tester, entre deux machines
virtuelles). Mais, j'ai été obligé d'utiliser /S adresseIP pour
spécifier l'ordinateur "receveur".


A part l'extinction d'un parc en réseau je n'ai pourtant pas trouvé
beaucoup d'applications.

Bonne nuit.
merci toi aussi


Méta-MCI \(MVP\)
Le #709082
Bonjour (maître de philosophie) Gilles !


Moi non plus, je ne connaissais pas MailSlot.

J'ai cherché un peu, et j'ai vu que c'était que c'était déjà utilisé
dans le vieux Winpopup.

"Par ma foi ! il y a plus de quarante ans que je dis du mailslot sans
que j'en susse rien, et je vous suis le plus obligé du monde de m'avoir
appris cela." - Monsieur Joudain/MCI - (d'où le surnom de
l'introduction).

Sinon, j'ai lu que mailslot utilisait SMB et UDP. Est-ce ce dernier
point qui te pousse à ne pas l'utiliser en production ? Parce que UDP
n'a pas les mécanismes de contrôle de délivrance des paquets ? Mais,
c'est la contrepartie d'une plus grande rapidité, et d'une moins grande
consommation de bande passante. Et puis, en TCP, il y a aussi des cas où
ça bloque (par exemple, si la machine qui doit émettre le signal est
(brutalement) bloquée, rebootée, déconnectée).

En tout cas, encore un truc à explorer...


@-salutations
--
Michel Claveau
Méta-MCI \(MVP\)
Le #709081
Salut !

En fait, j'en aurais une utilisation immédiate, chez un client où j'ai
mis en place des procédures assez compliquées de sauvegardes et
archivages : des postes sauvegardent certains répertoire sur un serveur,
qui réalise un archivage, mais après avoir vérifié certaines tables, et
avoir attendu la fin des sauvegardes des postes, et avant de faire une
sauvegarde sur un autre serveur. Tout ça en batch (merci Robocopy).

Pour synchroniser Waitfor serait bien pratique... s'il existait sur
toutes les machines concernées. Ce qui n'est pas le cas. D'où mon
conditionnel du début.

Alors, soit je vais chercher à l'implémenter, là où ça manque, soit je
vais attendre que les clients aient migré vers Vista + Server-2008 (qui
a aussi Waitfor).

@-salutations
--
Michel Claveau
Gilles RONSIN
Le #709080
"Méta-MCI (MVP)" déc. 2007 07:00:23, écrivait ceci:

Salut !
Salut,


Pour synchroniser Waitfor serait bien pratique... s'il existait
sur toutes les machines concernées. Ce qui n'est pas le cas. D'où
mon conditionnel du début.


Il y a de fortes chances qu'il soit compatible. Ca vaut le coup
d'essayer. Sinon la version de W98....

Publicité
Poster une réponse
Anonyme