randomisation avec echo du temps
Posté : 09 mars 2011 02:25
Merci encore à Plopi pour la commande sleep sans qui ma temporisation sous xp était trop compliquée.
Voici donc un ou plutôt deux batch(s) qui peuvent exécuter plusieurs commandes aléatoirement dans un délai raisonnable.
commençons par créer le bat principal à exécuter nommé par exemple "testrand.bat":
@echo off
rem demarrage du minuteur dans la barre de tache
start/min timing.bat
echo Veuillez patienter...
rem boucle de randomisation
:deb
rem si le random = 1, continuer le script sinon refaire un random
if %random%==1 goto yes
if %random% GTR 1 goto deb
:yes
cls
echo BINGO !
rem random = 1 donc, créer un dossier "bingo" qui signal au compteur de s'arrèter
md bingo
sleep 1
rem affiche le fichier text contenant le temps que le compteur a compté
echo resultat trouve en
more tem.txt
echo secondes
rem supprime le dossier "bingo" et le fichier "tem" pour ne pas laisser de traces
rmdir bingo
del tem.txt
pause
Puis dans le même dossier que notre "testrand", créons un autre bat nommé "timing.bat" :
@echo off
rem configure le compteur à 0
set "tem=0"
echo 0
rem boucle du compteur
:deb
rem vérifi si le random a trouvé 1 en vérifiant si "bingo" éxiste
if exist bingo goto end
rem ajoute une seconde par boucle
set/a tem=tem + 1
sleep 1
cls
rem affiche le compteur actuel
echo %tem%
rem tan que "bingo" n'éxiste pas, le compteur fait une boucle par seconde
goto deb
:end
rem après vérification que "bingo" éxiste, création de la variable du temps
rem actuel sous forme de fichier texte
echo %tem% > tem.txt
exit
La variable d’environnement %random% peut donc être configurée pour ne donner uniquement un résultat définit à l'avance
en l’occurrence 1 = goto yes mais l'on peut en définir plus et si %random% est supérieur aux valeurs définis, un autre %random%
est effectué.
La boucle du random met un certain temps, le timing.bat est exécuté dès le début et enregistrera un fichier texte contenant la variable du temps passé avant la bonne variable du random pour l'afficher dans le script "testrand" sous forme txt.
En espérant n'avoir pas fais de fautes, bon batchage !
Voici donc un ou plutôt deux batch(s) qui peuvent exécuter plusieurs commandes aléatoirement dans un délai raisonnable.
commençons par créer le bat principal à exécuter nommé par exemple "testrand.bat":
@echo off
rem demarrage du minuteur dans la barre de tache
start/min timing.bat
echo Veuillez patienter...
rem boucle de randomisation
:deb
rem si le random = 1, continuer le script sinon refaire un random
if %random%==1 goto yes
if %random% GTR 1 goto deb
:yes
cls
echo BINGO !
rem random = 1 donc, créer un dossier "bingo" qui signal au compteur de s'arrèter
md bingo
sleep 1
rem affiche le fichier text contenant le temps que le compteur a compté
echo resultat trouve en
more tem.txt
echo secondes
rem supprime le dossier "bingo" et le fichier "tem" pour ne pas laisser de traces
rmdir bingo
del tem.txt
pause
Puis dans le même dossier que notre "testrand", créons un autre bat nommé "timing.bat" :
@echo off
rem configure le compteur à 0
set "tem=0"
echo 0
rem boucle du compteur
:deb
rem vérifi si le random a trouvé 1 en vérifiant si "bingo" éxiste
if exist bingo goto end
rem ajoute une seconde par boucle
set/a tem=tem + 1
sleep 1
cls
rem affiche le compteur actuel
echo %tem%
rem tan que "bingo" n'éxiste pas, le compteur fait une boucle par seconde
goto deb
:end
rem après vérification que "bingo" éxiste, création de la variable du temps
rem actuel sous forme de fichier texte
echo %tem% > tem.txt
exit
La variable d’environnement %random% peut donc être configurée pour ne donner uniquement un résultat définit à l'avance
en l’occurrence 1 = goto yes mais l'on peut en définir plus et si %random% est supérieur aux valeurs définis, un autre %random%
est effectué.
La boucle du random met un certain temps, le timing.bat est exécuté dès le début et enregistrera un fichier texte contenant la variable du temps passé avant la bonne variable du random pour l'afficher dans le script "testrand" sous forme txt.
En espérant n'avoir pas fais de fautes, bon batchage !