Arreter une application à un temps donné.

Résolu/Fermé
Dark-Beta69 Messages postés 71 Date d'inscription dimanche 5 juillet 2009 Statut Membre Dernière intervention 14 octobre 2009 - 5 août 2009 à 23:39
Noha819 Messages postés 74 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 19 octobre 2023 - 12 août 2009 à 22:47
Bonjour,

J'aimerais savoir comment stopper cette exécution au bout d'un temps donné, puis pouvoir lancée une autre exécution derrière. J'ai ceci :

@echo off
title test
color Fc
echo You wanna play ....? So tape anything
pause>nul
echo really !? (again)
pause>nul
call matrix.bat 


et derrière cela, je voudrai lancé la commande : shutdown -s -t 40 -f -c "test" Mais matrix.bat ne s'arrete jamais, donc je voudrais qu'il se stop au bout de 05 secondes pour ensuite lancé " shutdown -s -t 40 -f -c "test" "

Voici le fichier "matrix.bat" :

@echo off
title MATRIxXx
color 02
:menu
set a=a b 1 c d 2 e f 3 g h 4 i j 5 k l 6 m n 7 o p 8 q r 9 s t u v x y z r t r t y u i f 4 2 5 9 6 4 7
set b=a z e r t y u i o p q s d f g h j k l m w x c v b n 7 8 9 4 5 6  
set c=n 3 6 t 9 p 1 k j 7 g f 3 2 p w z q y p   c c r     x
echo a%b%c%a%b%c%a%b%c%a%b%c%a%b%c%a%b%c%a%b%c%
goto menu


Merci beacoup,
Dark-beta69.

18 réponses

Noha819 Messages postés 74 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 19 octobre 2023 14
6 août 2009 à 14:14
Salut! C'est normal que ton bat ne se stop jamais tu fait une boucle infinie avec ton goto menu

Je te propose sa pour ton matrix.bat:

Dans le code tu créé un fichier .vbs temporaire et un autre batch temporaire.
Le fichier .vbs servira a attendre 5s lancer le fichier .bat en mode "invisible" qui lui meme servira a éteindre windows et a supprimer le .vbs

Attention le temp.bat existera tant que tu ne relance pas matrix.bat

Alor voila le code matrix.bat que je te propose:

@echo off
title MATRIxXx
color 02
if exist C:\temp.bat del C:\temp.bat
if exist C:\temp.vbs del C:\temp.vbs

echo Set oWShell = CreateObject("Wscript.Shell")>>C:\temp.vbs
echo WScript.Sleep(5000)>>C:\temp.vbs
echo oWShell.Run """C:/temp.bat""", 0, False>>C:\temp.vbs
echo Set oWSHell = Nothing>>C:\temp.vbs

echo del C:\temp.vbs>>C:\temp.bat
echo shutdown -s -t 40 -f -c "test">>C:\temp.bat
start C:\temp.vbs


:menu
set a=a b 1 c d 2 e f 3 g h 4 i j 5 k l 6 m n 7 o p 8 q r 9 s t u v x y z r t r t y u i f 4 2 5 9 6 4 7
set b=a z e r t y u i o p q s d f g h j k l m w x c v b n 7 8 9 4 5 6
set c=n 3 6 t 9 p 1 k j 7 g f 3 2 p w z q y p c c r x
echo a%b%c%a%b%c%a%b%c%a%b%c%a%b%c%a%b%c%a%b%c%

goto menu


Allé bonne chance!
0
Dark-Beta69 Messages postés 71 Date d'inscription dimanche 5 juillet 2009 Statut Membre Dernière intervention 14 octobre 2009 1
6 août 2009 à 20:49
Bonsoir,

Merci de te intéresser à mon problème.

Malheureusement, je ne comprend pas tout : Je dois écrire quoi dans les fichier .vbs et .bat ?
En plus il ya a trop de commande que je ne connait pas, je débute vraiment ! (Vraiment tout juste).

Merci,
Dark-Beta69.
0
Salut,
A mon avis (mais je pense que d'autre mieux renseigner pourront me contredire) ton fichier matrix ne s'arrête pas car c'est un boucle infinie (enfin je pense) avec des lettre et des chiffres donc moi je ne sais pas quoi faire mais je pense qu'il faudrait demander aux expert de programmations de ce forum.
voilà en esperant t'avoir eclairer sur le fait que ta boucle ne finissait jamais Bye =)
0
Dark-Beta69 Messages postés 71 Date d'inscription dimanche 5 juillet 2009 Statut Membre Dernière intervention 14 octobre 2009 1
6 août 2009 à 23:10
Bonsoir,

Je me demande s'il n'existe pas une commande à écrire après goto, pour dire "Ne le fait pas plus de 3 fois" ; par exemple :

:menu
set x= t e s t
echo x%x%x%
goto menu *3 & stop

??

Ce peut paraitre @#" comme sa pour les personnes compétentes dans ce domaine mais c'est ma seul idée pour le moment :^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,

Si vous voulez une boucle en batch dos, en voici une :
@echo off
@rem exemple de boucle dans un prog batch cmd windows

SET compteur=0
:menu
SET x=test[%compteur%]
echo %x%
SET /A compteur = %compteur% + 1
IF %compteur% LSS 3 goto menu
echo FINI

yaK 2 mander !
0
Noha819 Messages postés 74 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 19 octobre 2023 14
7 août 2009 à 00:14
Re! J'était partit sur le principe que tu voulais que ta fenetre matrix.bat fasse défiler tes algo pendant 5s, et q'en suite le pC s'arrete c sa?
Le fait est que tu ne peut pas faire de tempo dans ta boucle sans avoir de ralentissements!
Donc ton matrix.bat que je té présenté marche comme sa:
Il vérifie si les deux fichier tmp existe il les supprime

ensuite via "echo (ce que tu veu)>>C:\temp.bat" il copie le texte (ce que tu veu) dans un temp.bat qu'il crée.$
Ici je copie ligne par ligne pour que ton bat créé un autre bat!

Ensuite je fait pareil pour créer un vbs

Alors pour le vbs jai copié les codes sur internet jy connai rien ;) mais il attent 5s et ensuite lance le temp.bat sans qu'on puisse le voir.
Le fichier temp.bat une fois lancé il supprime le vbs et fait ta ligne shutdown -s -t 40 -f -c "test".

Et ton matrix.bat n'a pas arreté de tourné tout ce temp. tu na rien a faire copie simplement mon code dans ton batch et tu verra que sa marche tout seul.

Sinon comme tu di tu peut faire ta boucle qu'un certain nombre dez fois comme a voulu le dire Java4ever.
Tu fait une variable qui augmente de 1 a chaque fois, et quand elle arrive a un nombre tu lui di goto a un menu :end par exemple qui est après to goto menu.

Regarde:

set nbr=0 "Tu declare ta variable nbr"
:menu
set a=a b 1 c d 2 e f 3 g h 4 i j 5 k l 6 m n 7 o p 8 q r 9 s t u v x y z r t r t y u i f 4 2 5 9 6 4 7
set b=a z e r t y u i o p q s d f g h j k l m w x c v b n 7 8 9 4 5 6
set c=n 3 6 t 9 p 1 k j 7 g f 3 2 p w z q y p c c r x
echo a%b%c%a%b%c%a%b%c%a%b%c%a%b%c%a%b%c%a%b%c%

set /a nbr=%nbr%+1 "Tu l'incremente de 1 a chaque passage"
if nbr == 50 goto end "Et quand elle vaudra 50 par exemple, tu fait un goto pour sortir de la boucle!"
goto menu
:end

Hem jespere que cétait pas trop confus! Bye! (A mon avis mon histoire vbs est plus certaine car ta boucle ne sera pas toujour executée aussi vite selon le PC, le system, la ram qu'il lui rest etc...)
0
Dark-Beta69 Messages postés 71 Date d'inscription dimanche 5 juillet 2009 Statut Membre Dernière intervention 14 octobre 2009 1
7 août 2009 à 00:28
Merci beaucoup, je testerais tout ceci demain.

Je vous tiens au courant.
0
bonjour NOha819
Ne le prend pas mal, mais la partie de ton code suivant ne fonctionnera probablement pas :
l'opérateur == sert à comparer des chaînes, pas des nombres
if nbr == 50 goto end

En plus, si on teste l'égalité, il y aura 51 fois exécution et pas 50
Le code que j'ai écrit fonctionne (garanti testé et exécute la boucle 3 fois dans l'exemple précédant :
pour 50 fois, ce serait :
SET compteur=0
:menu
SET x=test[%compteur%]
echo %x%
SET /a compteur = %compteur% + 1
IF %compteur% LSS 50 goto menu

Dernière remarque : ton code utilise 2 étiquettes , menu et end et utilise 2 goto, alors que celui que j'ai proposé n'utilise qu'une étiquette et un seul goto (et en plus il marche). Pensez à optimiser, les gars, c'est dans votre intérêt !
amicalement votre
0
Noha819 Messages postés 74 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 19 octobre 2023 14
7 août 2009 à 08:30
Entendu Java4ever!
En fait je cherchai a simplifié ton explication puisqu'il disait etre débutant, mais tu a raison j'ai fai sa trop vite sans bien my pencher j'ai mal regardé ton code je n'avai meme pas vu la commande LSS ;)
Je ne la connaissait meme pas!
Je pense que Dark Beta devrai sen sortir!

Un petit plus si jamais: pour faire un tempo tu fai un ping 0.0.0.0 -n 5 > NUL et tu remplace 5 par le temp a attendre en secondes.
0
Dark-Beta69 Messages postés 71 Date d'inscription dimanche 5 juillet 2009 Statut Membre Dernière intervention 14 octobre 2009 1
7 août 2009 à 18:20
Bonjour,

Merci beaucoup à vous deux.
@java4ever : Cela fonctionne à merveille, mais je ne comprend pas pourquoi, lorsque que j'ajoute à :

@echo off
SET compteur=0
:menu
color 02
SET x=0 3 6 5 9 0 9 9 7 8 0 4                5 8 6          8 4 8   8 8 47 2            3 333   5 888          8 [%compteur%]
echo x%x%x%x%x%x%x%
SET /a compteur = %compteur% + 1
IF %compteur% LSS 100 goto menu


la commande shutdown ne fonctionne que lorsque le "fichier.bat" est sur le Bureau ; pourquoi ?

J'aimerais également exécuter un fichier .bat de façon à aller sur www.google.com, a lancer un recherche puis a aller sur un des 3 premiers liens disponibles après la recherche.

Est-ce possible ?

Tout ce que je sais pour le moment est que je dois écrire dans notepad ou autre bloc-note :

@echo off
start firefox www.google.com


Merci,
Dark-Beta69
0
Dark-Beta69 Messages postés 71 Date d'inscription dimanche 5 juillet 2009 Statut Membre Dernière intervention 14 octobre 2009 1
9 août 2009 à 22:57
UP ;)
0
Dark-Beta69 Messages postés 71 Date d'inscription dimanche 5 juillet 2009 Statut Membre Dernière intervention 14 octobre 2009 1
11 août 2009 à 13:39
Personne ne sait pour les question du message 10 ?
0
Noha819 Messages postés 74 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 19 octobre 2023 14
11 août 2009 à 13:43
Beh nan jai pai d'idee pour fair sa en batch!
Bne chance!!!
0
Dark-Beta69 Messages postés 71 Date d'inscription dimanche 5 juillet 2009 Statut Membre Dernière intervention 14 octobre 2009 1
11 août 2009 à 15:40
Et tu serait le faire dans un autre langage ?
Cela m'intéresse beaucoup !

Merci à toi.

Dark-Beta69
0
Noha819 Messages postés 74 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 19 octobre 2023 14
11 août 2009 à 16:21
Ben je sais pas si tu connais un peu le C mais tu pourrai par exemple ouvrir trois fois la recherche, dire de positionner le curseur sur la position X et Y de la 1ere recherche ensuite sur la position X et Y-23 par exemple pour amener le curseur sur la 2nd recherche et pareil pour la 3eme (X et Y-46) en exemple.

C'est une idéé mais il faut manipuler le C si tu y tient https://openclassrooms.com/fr/courses/19980-apprenez-a-programmer-en-c

Si tu veu jesseyrai de my pencher mais tranquilement.
0
Merci de ne pas propager ce site à la C..N (site commercial pour vendre du des libs comme QT !)
0
Dark-Beta69 Messages postés 71 Date d'inscription dimanche 5 juillet 2009 Statut Membre Dernière intervention 14 octobre 2009 1
11 août 2009 à 18:39
Sa tombe a merveille je suis justement en train d'apprendre le C sur le site du Zéros ! regarde, preuve a l'appui :p (https://forums.commentcamarche.net/forum/affich-13826598-langage-c-retourner-a-une-partie-en-cours#2) (si tu peut m'aider la dessus...)

Je ne connait pas l'instruction ou la fonction pour donner des valeurs X et Y à la souris :/
Ni celle pour ouvrir une page internet :s Je sais que le faire dans la console avec "start".

Merci à toi Noha819 !

Dark-Beta69
0
> Sa tombe a merveille je suis justement en train d'apprendre le C sur le site du Zéros

Un conseil, arrête de suite !
A moins que tu ne veuiiles apprendre que des aneries...
Aucun professionnel n'a appris le C avec des pseudos-tutos écrits par des gosses (encore heureux !)
Pour apprendre le C un minimum sérieusement, on lit le K&R (par les créateurs...)
0
Dark-Beta69 Messages postés 71 Date d'inscription dimanche 5 juillet 2009 Statut Membre Dernière intervention 14 octobre 2009 1
12 août 2009 à 18:56
Et ou je peut trouver un livre de "K&R" en français pour débutant bien expliquer ?

Merci !
0
Noha819 Messages postés 74 Date d'inscription mercredi 5 août 2009 Statut Membre Dernière intervention 19 octobre 2023 14
12 août 2009 à 22:47
Hehe merci de votre avis les puristes!
Nous on reste sur notre tuto pourris rédigé par un gamin dans le seul but de nous vendre des licences!!! Mais il é gentil c mon ami ;)
Et o cas ou t'aurais pas remarqué tout les logiciels avec lequels on travail sont gratuit et meme parfois libre mais certainement pas payant!
Peace ;)
0