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

Fermé
ProtecTueur Messages postés 24 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 21 janvier 2010 - 19 janv. 2009 à 17:45
ProtecTueur Messages postés 24 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 21 janvier 2010 - 23 janv. 2009 à 08:28
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

guy2mars Messages postés 204 Date d'inscription dimanche 18 février 2007 Statut Membre Dernière intervention 24 janvier 2013 71
19 janv. 2009 à 20:24
mettre un timer???
c est possible dans tous les langages il me semble
faudrait ressortir mon bouquin DOS ;o))
0
ProtecTueur Messages postés 24 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 21 janvier 2010 7
19 janv. 2009 à 21:48
Oui en gros, mais est-ce que mon code est juste? Or mis le timer?
0
oui, il a l' air à peu près juste, pour le Timer, cherche un peu, je te donne la réponse dans 10 minutes :)
0
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
0

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

Posez votre question
guy2mars Messages postés 204 Date d'inscription dimanche 18 février 2007 Statut Membre Dernière intervention 24 janvier 2013 71
19 janv. 2009 à 23:49
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
0
ProtecTueur Messages postés 24 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 21 janvier 2010 7
20 janv. 2009 à 08:36
C'est incomplet la? 6,2 étant en seconde?
0
ProtecTueur Messages postés 24 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 21 janvier 2010 7
20 janv. 2009 à 08:51
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?
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
20 janv. 2009 à 08:55
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.
0
ProtecTueur Messages postés 24 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 21 janvier 2010 7
21 janv. 2009 à 10:26
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.
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
21 janv. 2009 à 11:50
@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
0
ProtecTueur Messages postés 24 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 21 janvier 2010 7
21 janv. 2009 à 12:20
é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...
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
21 janv. 2009 à 12:32
rien ne lance mspaint ?
as tu au moins testé que cette commande suffisait, que mspaint est bien dans le PATH ?
0
ProtecTueur Messages postés 24 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 21 janvier 2010 7
23 janv. 2009 à 08:28
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.
0