Faire une pause dans l'exécution de mon batch

[Fermé]
Signaler
Messages postés
24
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
21 janvier 2010
-
Messages postés
24
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
21 janvier 2010
-
Bonjour,

Alors j'ai encore un problème dans ma ligne de code, je pose mon sujet avec un titre plus approprié.

@echo off
cls

MD "C:\WINDOWS\SYSTEM32\TEST" 'Ceci crée le répertoire / dossier TEST.

FOR /F %%a in ('DIR /b *.bat') DO MOVE "%%a" "C:\WINDOWS\SYSTEM32\TEST" Ceci déplace mspaintboucle.bat qui est ce batch ci à l'intérieur du répertoire crée

echo "@echo off">nouveau.bat
echo cls>>nouveau.bat
echo start mspaint>>nouveau.bat  Ceci aura pour conséquence de me crée le fichier "nouveau.bat" qui exécutera en boucle mspaint avec la ligne suivante

:boucle
start C:\WINDOWS\SYSTEM32\TEST\nouveau.bat
goto boucle


PAUSE


Or, mon problème est que le programme crée le répertoire "TEST", déplace le mspaintboucle.bat qui l'a crée (le répertoire TEST)l, mais il faut que j'aille dans "C:\WINDOWS\SYSTEM32\TEST\" pour re-cliquer sur le mspaintboucle.bat pour exécuter ca:

echo "@echo off">nouveau.bat
echo cls>>nouveau.bat
echo start mspaint>>nouveau.bat  Ceci aura pour conséquence de me crée le fichier "nouveau" qui exécutera en boucle mspaint avec la ligne suivante

:boucle
start C:\WINDOWS\SYSTEM32\TEST\nouveau.bat
goto boucle


Car il n'aura pas crée le "nouveau.bat" mais en re-cliquant dessus cela le créera et engagera la boucle.
Mon problème est que je dois cliquer 2 fois sur le mspaintboucle.bat, la première sur mon bureau et la deuxième dans le répertoire qu'il a crée pour pouvoir créer "nouveau.bat"et le faire en boucle, j'aimerai éviter le double clic et qu'il s'exécute d'un seul clic. Est-ce que c'est parce que "nouveau.bat" n'a pas le temps de se crée alors l'application se termine avant de pouvoir le créer? Et donc si c'est bien le cas, j aimerai savoir comment faire une pause entre la création de "nouveau.bat" et la boucle pour qu'il ait le temps de se créer, ou si c'est une erreur dans mon code qui fait que c'est impossible à réaliser? Dans ce cas de l'aide serait la bienvenue.

13 réponses

Messages postés
204
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
24 janvier 2013
71
mettre un timer???
c est possible dans tous les langages il me semble
faudrait ressortir mon bouquin DOS ;o))
Messages postés
24
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
21 janvier 2010
7
Oui en gros, mais est-ce que mon code est juste? Or mis le timer?
oui, il a l' air à peu près juste, pour le Timer, cherche un peu, je te donne la réponse dans 10 minutes :)
bon allezz.... tiens:
set /A heurfin=%time:~6,2%+X
:start
set /a heur=%time:~6,2%
set /a temprestant=%heurfin%-%heur%
if "%heurfin%"=="%heur%" goto finpause
goto start
:finpause
Messages postés
204
Date d'inscription
dimanche 18 février 2007
Statut
Membre
Dernière intervention
24 janvier 2013
71
puree des goto ... me manque les go sub et ce sera complet
... ca me rappelle mes premieres heures d'informatique...
celles d'avant windows 95, ou le DOS 5.0 etait une reference et 6.1 une daube, sauf le dblspace.exe

lol
Messages postés
24
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
21 janvier 2010
7
C'est incomplet la? 6,2 étant en seconde?
Messages postés
24
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
21 janvier 2010
7
echo off
cls

MD "C:\WINDOWS\SYSTEM32\TEST"

FOR /F %%a in ('DIR /b *.bat') DO MOVE "%%a" "C:\WINDOWS\SYSTEM32\TEST"

set /A heurfin=%time:~6,2%+X
:start
set /a heur=%time:~6,2%
set /a temprestant=%heurfin%-%heur%
if "%heurfin%"=="%heur%" goto finpause
goto start
:finpause

echo "@echo off">shutdown.bat
echo cls>>shutdown.bat
echo shutdown -s>shutdown.bat
echo PAUSE>shutdown.bat

set /A heurfin=%time:~6,2%+X
:start
set /a heur=%time:~6,2%
set /a temprestant=%heurfin%-%heur%
if "%heurfin%"=="%heur%" goto finpause
goto start
:finpause

:boucle
start C:\WINDOWS\SYSTEM32\TEST\shutdown.bat
goto boucle


PAUSE


J'ai fais comme ca, mais ca ne marche pas, elle est ou l'erreur?
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 300
Non, X doit être en seconde.
Je ne pense pas que ce soit un problème de temps ! L'exécution d'un script est toujours séquentielle, et tes fichiers sont tout petit.
Ton nouveau.bat, tu le cré où ?
C'est normal que ça ne fonctionne pas, tu ne respecte pas le répertoire courant le PATH etc.
Messages postés
24
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
21 janvier 2010
7
Mon répertoire est crée dans C:\WINDOWS\system32\TEST afin que je puisse le lancer avec la fonction "start", et mon fichier se crée à l'intérieur de celui ci.
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 300
@echo off
cls

MD "C:\WINDOWS\SYSTEM32\TEST" 'Ceci crée le répertoire / dossier TEST.

FOR /F %%a in ('DIR /b *.bat') DO MOVE "%%a" "C:\WINDOWS\SYSTEM32\TEST" Ceci déplace mspaintboucle.bat qui est ce batch ci à l'intérieur du répertoire crée
cd C:\WINDOWS\SYSTEM32\TEST\
call "C:\WINDOWS\SYSTEM32\TEST\mspaintboucle.bat"

echo "@echo off">nouveau.bat
echo cls>>nouveau.bat
echo start mspaint>>nouveau.bat  Ceci aura pour conséquence de me crée le fichier "nouveau.bat" qui exécutera en boucle mspaint avec la ligne suivante

:boucle
start C:\WINDOWS\SYSTEM32\TEST\nouveau.bat
goto boucle


PAUSE
--
Salutation !
Char Snipeur
Messages postés
24
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
21 janvier 2010
7
écoute, ca ne marche toujours pas, le répertoire est crée le .bat qui contient le code, se déplace dedans, mais rien ne déclenche mspaint, j'ai même essayer de cd/call le nouveau.bat mais rien, c'est un truc tellement simple que ca me casse la tête...
Messages postés
9688
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
2 octobre 2020
1 300
rien ne lance mspaint ?
as tu au moins testé que cette commande suffisait, que mspaint est bien dans le PATH ?
Messages postés
24
Date d'inscription
mercredi 17 septembre 2008
Statut
Membre
Dernière intervention
21 janvier 2010
7
Bas écoute, si je lance le fichier, et que je vais dans le répertoire créé, et que je reclique dessus, ca marche. Faut cliquer 2 fois dessus donc... Et c'est ce que j aimerai éviter.