Faire une attente sous dos (batch)

Résolu
mathhieu -  
 CharlesDelo -
Bonjour,

je voudrais insérer une ligne de temporisation entre deux lignes dans un programme .bat mais je connais pas la syntaxe, quelqu'un pourrais m'aider. Je veux faire une pause de 30 seconde et reprendre aprés

Merci
A voir également:

24 réponses

karirovax Messages postés 3221 Date d'inscription   Statut Membre Dernière intervention   204
 
salut tous le monde

voici la remarche pour 30 seconde avec des bips ;)

@echo off


echo ceci est un test
echo.
echo ???????????????????????????????????????»
ECHO ? ?
echo ? ceci est un test ?
ECHO ? ?
echo ???????????????????????????????????????¼
echo.
SET load=
SET /A loadnum=0


:Loading
set /p "=>" %%<nul
PING -n 2 localhost >nul
SET /A loadnum+=1
IF not %loadnum% EQU 30 GOTO :loading
echo.
pause


karirovax ;)
0
MVG
 
J'ai une réponse...... hahahaha!! gt noob en batch hier et aujourdh'ui je m'y remet. et... voici une commande externe que j'ai crée en partant uniquement du batch elle comprend 2 argument un qui est le temps en seconde le délai max de la pause est de 59s la précision est de l'ordre de 1s et le deuxième est l'aide (syntaxe)

voici son contenu c'est super facile........
Il y a beacoup de commentaire mais utiles à comprendre.

---------------------------------------------------------------

@echo off

:argument
rem %1 est l'argument saisie précédemment en apelant la commande (ex: pauser 5) 5 étant le tps en secondes
rem on test si l'argument est null
set T=%1
if "%T%" == "/?" goto Syntaxe
if "%T%" == "" goto error

rem test si l'argument est compris entre 1 et 60 et que c'est un nombre et non une chaine de caractère
IF %T% geq 1 GOTO test0

:test0
IF %T% lss 60 GOTO init
goto error

:error
rem affiche la syntaxe de la commande pauser
echo.
echo taper /? pour afficher l'aide
echo.
goto fin


:Syntaxe
echo.
echo Syntaxe :
echo.
echo PAUSER [nombre]
echo.
echo nombre Nombre compris entre 1 et 59
echo.
echo Fonctionnement: permet de faire une pause de dur'e maximum de 59 secondes
echo.
echo MVG 15/09/12
echo.
echo pause >null
goto fin

rem ce script permet de faire une pause de durée limité à 60 secondes max MVG 15/09/12
rem Définition de quelques variables utilisé....
rem t0=temps en seconde au moment du lancement du script
rem t1=temps en seconde de la durée de la pause souhaité
rem t2=temps en seconde de la fin de pause (t2=t0+t1)
rem %time:~6,2%= secondes à l'instant T de l'horloge windows sur 2 chiffres (unité et dizaine)
rem minute=limitation de la pause max de 60 secondes
rem InstantT=temps en seconde à l'instant T

:init
rem initialisation des variables
rem la précedente variable T a réussi les différents test: compris entre 1 et 60
set t1=%T%
set minute=60
set t0=%time:~6,2%
set /a t2=%t0%+%t1%

rem Si l'addition du temps à atteindre(t0+t1) dépasse 60, étant donnée qu'après 60 secondes l'horloge repart à 1 nous sommes obligé de redéfinir le calcul de la fin de pause qui est le suivant:
rem Si t2 est plus grand que 60 alors la nouvelle variable sera égale à t2-60
if /I %t2% GTR %minute% set /a t2=%t2%-%minute%

rem étant donné que le compteur des secondes s'arrète à 59 ensuite redémarre à zéro si la variable t2 est égale à 60 nous l'initialisereont à 0
if /I %t2% == %minute% set t2=0

rem Cette ligne corrige l'erreur entre le calcul et le défilement des secondes si nous trouvons comme résultat la somme de t0+t1 compris entre 60 et 70
rem Dans ce cas de figure, en faisant le calcul, ((t0+t1)-60)<=>ex:65-60=5 nous trouvons 5 comme résultat.
rem A cet instant T, la variable de défilement des secondes nous affichera une dizaine nulle CAD "05" et qui est différent de "5" donc si la dizaine est nulle, nous allons ajouter un zéro à cette variable t2
if %t2% lss 10 set t2=0%t2%


:pause
rem on définit la variable de défilement des secondes à l'instant T (unité+dizaine)
set InstantT=%time:~6,2%

rem si nous avons atteint la fin de pause le script se termine.
if %InstantT%==%t2% goto fin

goto pause

:fin


-------------------------------------------------------------------------------

J'ai compilé ce batch en exe et c'est du bonheur... je pense que j'ai des test à faire encore.. je l'ai pondu hier soir vite fait g fini ...
0
MVG
 
pour l'utiliser copier le tout dans un fichier et nommer le "pauser.bat "et mettez le soit dans les paths (c:\windows\system32) soit à la racine de votre batch et venez l'apeller...si vous ne savez pas comme l'utiliser taper la commande "pauser /?"
0
Anonyme209 Messages postés 681 Date d'inscription   Statut Membre Dernière intervention   16
 
C'est tout simple, inutile de s'embeter!
Ecris ceci:

[ETAPE 1]
ping localhost -n [nombre de secondes + 1] > nul
[ETAPE 2]
0
antoine69
 
Une technique consiste à pinger une adresse IP bidon :

ping 0.0.0.0 -n 5 > NUL

On peut aussi utilise la commande Sleep (La commande Sleep n'est pas intégrée à Windows, il faut la telecharger)
0