Rechercher : dans
Par :

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

Dernière réponse le 23 jan 2009 à 08:28:57 ProtecTueur, le 19 jan 2009 à 17:45:57 
 Signaler ce message aux modérateurs

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.
Configuration: Windows XP
Firefox 2.0.0.14

Meilleures réponses pour « Faire une pause dans l'exécution de mon batch » dans :
Désactiver l'exécution de certains programmes au démarrage VoirDésactiver l'exécution de certains programmes au démarrage - Windows 98/Me/2000/XP/Vista Avec msconfig Avec WinPatrol Avec Startuplite Avec CCleaner Remarques Lorsque vous installez des logiciels, certains s'exécutent à chaque...
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...
Prévention de l'Exécution des Données VoirParamétrer ou désactiver la Prévention d'Exécution des Données (PED) Depuis le SP2 de Windows XP (Vista inclus), une nouvelle gestion de la mémoire (mode No eXecute) a été ajoutée, elle permet aux processeurs Athlon 64 d'AMD de protéger le système...
Exécuter une macro VoirExécuter une macro Excel et Calc proposent plusieurs façons d’exécuter une macro : en la sélectionnant dans une liste, dans la boîte de dialogue Macro ; par un raccourci clavier ; en l’attachant à un bouton de la barre d’outils ; ...
Exécution de requêtes avec JDBC VoirExécution d'une requête SQL Pour exécuter une requête SQL, il s'agit dans un premier temps de créer un objet Statement, pouvant être obtenu à partir de l'objet Connection. Un objet ResultSet permettra de récupérer les données en provenance de...

1

guy2mars, le 19 jan 2009 à 20:24:48

Mettre un timer???
c est possible dans tous les langages il me semble
faudrait ressortir mon bouquin DOS ;o))

Répondre à guy2mars

2

ProtecTueur, le 19 jan 2009 à 21:48:18

Oui en gros, mais est-ce que mon code est juste? Or mis le timer?

Répondre à ProtecTueur

3

uToPiuM, le 19 jan 2009 à 21:52:17

Oui, il a l' air à peu près juste, pour le Timer, cherche un peu, je te donne la réponse dans 10 minutes :)

Répondre à uToPiuM

4

uToPiuM, le 19 jan 2009 à 21:58:47

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

Répondre à uToPiuM

5

guy2mars, le 19 jan 2009 à 23:49:40

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

Répondre à guy2mars

6

ProtecTueur, le 20 jan 2009 à 08:36:16

C'est incomplet la? 6,2 étant en seconde?

Répondre à ProtecTueur

7

ProtecTueur, le 20 jan 2009 à 08:51:38

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?

Répondre à ProtecTueur

8

Char Snipeur, le 20 jan 2009 à 08:55:52

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. Salutation !
Char Snipeur

Répondre à Char Snipeur

9

ProtecTueur, le 21 jan 2009 à 10:26:01

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.

Répondre à ProtecTueur

10

Char Snipeur, le 21 jan 2009 à 11:50:10

@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

Répondre à Char Snipeur

11

ProtecTueur, le 21 jan 2009 à 12:20:22

é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...

Répondre à ProtecTueur

12

Char Snipeur, le 21 jan 2009 à 12:32:46

Rien ne lance mspaint ?
as tu au moins testé que cette commande suffisait, que mspaint est bien dans le PATH ? Salutation !
Char Snipeur

Répondre à Char Snipeur

13

 ProtecTueur, le 23 jan 2009 à 08:28:57

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.

Répondre à ProtecTueur
Collection CommentÇaMarche.net