Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[R]Faire 2 choses en même temps
Auteur Message
Répondre en citant
Message [R]Faire 2 choses en même temps 
Bonsoir,
Je suis sur un programme qui teste l'existence d'un fichier et qui doit utiliser en même temps batbox /y dans une boucle for donc j'aimerai pouvoir faire ça :
Code:

if exist monfichier.txt goto traitementfichier

Et :
Code:

for /f "tokens=1-3 delims=:" %%a in ('batbox /y') do (
set X=%%a
set Y=%%b
set clic=%%c
)
if %Y% GEQ 14 if %Y% LEQ 16 if %X% GEQ 2 if %X% LEQ 32 echo hello

En même temps sauf que batbox attend de recevoir une valeur pour continuer le programme
Ou alors trouver un moyen pour que la boucle for arrete d'attendre une valeur pour continuer le programme
Pouvez-vous m'aider ?
Merci d'avance,



Dernière édition par programme le Mar 27 Déc 2016 - 16:49; édité 1 fois

______________________________________________________

Programme
Skype
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [R]Faire 2 choses en même temps 
C'est pas batbox/m pour les clics plutôt? Mr. Green

On ne peut pas récupérer de clic de la souris sans attendre, il n'existe pas d'option "/m_" comme il existe un "/k_" qui récupère une touche clavier sans attendre contrairement à "/k".
Donc la solution serait de faire utiliser le clavier au lieu de la souris.

Essaye un truc comme ça (j'ai pas testé)

Code:
::for /L avec rien dans le 'in' fait une boucle infinie, un peu comme "while 1" dans un autre langage
for /L %a in () do (
:: exemple avec appui de la barre espace (valeur 32), on prend le code ASCII
batbox /k_
if "%ERRORLEVEL%"=="32" goto truc

if exist monfichier.txt goto traitementfichier
)


Pour attendre une entrée clavier, on fait batbox/k, mais pour ne pas attendre, on fait batbox/k_




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Répondre en citant
Message [R]Faire 2 choses en même temps 
Hugo7 a écrit:
C'est pas batbox/m pour les clics plutôt? Mr. Green

On ne peut pas récupérer de clic de la souris sans attendre, il n'existe pas d'option "/m_" comme il existe un "/k_" qui récupère une touche clavier sans attendre contrairement à "/k".
Donc la solution serait de faire utiliser le clavier au lieu de la souris.

Essaye un truc comme ça (j'ai pas testé)

Code:
::for /L avec rien dans le 'in' fait une boucle infinie, un peu comme "while 1" dans un autre langage
for /L %a in () do (
:: exemple avec appui de la barre espace (valeur 32), on prend le code ASCII
batbox /k_
if "%ERRORLEVEL%"=="32" goto truc

if exist monfichier.txt goto traitementfichier
)


Pour attendre une entrée clavier, on fait batbox/k, mais pour ne pas attendre, on fait batbox/k_
batbox /y existe, mais il n'est pas documenté sur le site de dos9.
Il attends n'importe quel évènement dont les mouvements de la souris : http://batch.xoo.it/p29193.htm

D'ailleurs, si tu veux une meilleur couverture de bugs, je te conseille darkbox comme batch batbox n'est plus (et ne sera plus) développé par son développeur, donc tout bugs devra à être corrigér par toi.
-> http://batch.xoo.it/t5526-Dev-Darkbox-TSnake41.htm

D'ailleurs, darkbox est connu pour être plus rapide que batbox en plus d'être compatible *NIX/Dos9 et souvent MS-DOS.




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message [R]Faire 2 choses en même temps 
TSnake41 a écrit:
Hugo7 a écrit:
C'est pas batbox/m pour les clics plutôt? Mr. Green

On ne peut pas récupérer de clic de la souris sans attendre, il n'existe pas d'option "/m_" comme il existe un "/k_" qui récupère une touche clavier sans attendre contrairement à "/k".
Donc la solution serait de faire utiliser le clavier au lieu de la souris.

Essaye un truc comme ça (j'ai pas testé)

Code:
::for /L avec rien dans le 'in' fait une boucle infinie, un peu comme "while 1" dans un autre langage
for /L %a in () do (
:: exemple avec appui de la barre espace (valeur 32), on prend le code ASCII
batbox /k_
if "%ERRORLEVEL%"=="32" goto truc

if exist monfichier.txt goto traitementfichier
)


Pour attendre une entrée clavier, on fait batbox/k, mais pour ne pas attendre, on fait batbox/k_
batbox /y existe, mais il n'est pas documenté sur le site de dos9.
Il attends n'importe quel évènement dont les mouvements de la souris : http://batch.xoo.it/p29193.htm

D'ailleurs, si tu veux une meilleur couverture de bugs, je te conseille darkbox comme batch batbox n'est plus (et ne sera plus) développé par son développeur, donc tout bugs devra à être corrigér par toi.
-> http://batch.xoo.it/t5526-Dev-Darkbox-TSnake41.htm

D'ailleurs, darkbox est connu pour être plus rapide que batbox en plus d'être compatible *NIX/Dos9 et souvent MS-DOS.


Le problème est que darkbox utilise un autre "langage" que batbox ... et je ne vois pas trop les avantages parce que je n'ai pas encore constaté de bugs sur batbox et je ne connais pas les vrais avantages à passer à darkbox
Cependant si darkbox a une équivalence de batbox /y_ je veux bien essayer Very Happy




______________________________________________________

Programme
Skype
Répondre en citant
Message [R]Faire 2 choses en même temps 
Je suis désolé mais j'ai pas très bien compris Mr. Green
Enfin je suis pas sûr mais est-ce que tu veux faire ça :

(troll)Protocol pour faire des pâtes(/troll) a écrit:


Vérifier si la souris est à cette endroit & en même temps tester si un fichier existe



Pourquoi faire ça ?
Il me faut + d'informations pour proposer un code optimiser Okay
Concrètement...que veux-tu faire ?



Pour l'instant pour faire ces 2 actions en même temps tu peux faire comme ça :
Code:
@echo off


if /i "%~1" EQU "Thread" (
echo.>>monfichier.txt
echo.Fichier traité !>>monfichier.txt
exit )


 
echo.salut>monfichier.txt

batbox /g 5 16
batbox /d "Hello"
batbox /g 0 0

if exist monfichier.txt start /b "" call "%~0" "Thread"
for /f "tokens=1-3 delims=:" %%a in ('batbox /y') do (
set X=%%a
set Y=%%b
set clic=%%c
)
if %Y% GEQ 14 if %Y% LEQ 16 if %X% GEQ 2 if %X% LEQ 32 echo hello


pause



___________________
Edit :

Ceci pourra certainement t'intéressé : http://batch.xoo.it/t5427-Tuto-Le-Multi-threading-en-batch-V-2-0.htm?q=thre…




______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message [R]Faire 2 choses en même temps 
Flammrock a écrit:
Je suis désolé mais j'ai pas très bien compris Mr. Green
Enfin je suis pas sûr mais est-ce que tu veux faire ça :

(troll)Protocol pour faire des pâtes(/troll) a écrit:


Vérifier si la souris est à cette endroit & en même temps tester si un fichier existe



Pourquoi faire ça ?
Il me faut + d'informations pour proposer un code optimiser Okay
Concrètement...que veux-tu faire ?



Pour l'instant pour faire ces 2 actions en même temps tu peux faire comme ça :
Code:
@echo off


if /i "%~1" EQU "Thread" (
echo.>>monfichier.txt
echo.Fichier traité !>>monfichier.txt
exit )


 
echo.salut>monfichier.txt

batbox /g 5 16
batbox /d "Hello"
batbox /g 0 0

if exist monfichier.txt start /b "" call "%~0" "Thread"
for /f "tokens=1-3 delims=:" %%a in ('batbox /y') do (
set X=%%a
set Y=%%b
set clic=%%c
)
if %Y% GEQ 14 if %Y% LEQ 16 if %X% GEQ 2 if %X% LEQ 32 echo hello


pause



___________________
Edit :

Ceci pourra certainement t'intéressé : http://batch.xoo.it/t5427-Tuto-Le-Multi-threading-en-batch-V-2-0.htm?q=thre…


Ok en fait si je fais
Code:

@echo off
:debut

rem 1 programme
if /i "%~1" EQU "Thread" (
echo.>>monfichier.txt
echo Fichier traité !>>monfichier.txt
exit
)

if exist monfichier.txt start /b "" call "%~0" "Thread"

rem 2 programme

for /f "tokens=1-3 delims=:" %%a in ('batbox /y') do (
set X=%%a
set Y=%%b
set clic=%%c
)

if %Y% GEQ 14 if %Y% LEQ 16 if %X% GEQ 2 if %X% LEQ 32 echo hello
goto debut

En fait si je fais ca j'effectue 2 actions en même temps en continu ?




______________________________________________________

Programme
Skype
Répondre en citant
Message [R]Faire 2 choses en même temps 
programme a écrit:
En fait si je fais ca j'effectue 2 actions en même temps en continu ?


Oui Mr. Green




______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message [R]Faire 2 choses en même temps 
Flammrock a écrit:
programme a écrit:
En fait si je fais ca j'effectue 2 actions en même temps en continu ?


Oui Mr. Green

Waw c'est excellent ça merci !!! Okay
Sujet Résolu




______________________________________________________

Programme
Skype
Message [R]Faire 2 choses en même temps 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch