Arrêt .bat

Résolu/Fermé
vladivostok Messages postés 228 Date d'inscription samedi 6 septembre 2008 Statut Membre Dernière intervention 8 février 2010 - 8 mars 2009 à 11:19
vladivostok Messages postés 228 Date d'inscription samedi 6 septembre 2008 Statut Membre Dernière intervention 8 février 2010 - 20 mars 2009 à 17:09
Bonjour,

Voilà j'ai un problème avec un batch que j'ai fait (je remercie d'ailleurs beaucoup cs-bilou pour son aide)
il s'arrête en plein milieu

@echo off
set /P choix=En ouvrant cette boite, Vous lancer un processus pour tenter de devenir utilisateur system32. Continuer ? (O=Oui ; N=Non)
If /I %choix%==O (
echo Le processus va commencer.
) else (
If /I %choix%==N (
exit
) else echo Par defaut le choix est Oui arreter le batch si vous ne voulez pas l'executer il vous reste 10 secondes !
)
pause
set temps=10

set /a secondefin=%time:~6,2%+%temps%
if %secondefin% GEQ 60 (goto def) else goto inf1minute


:inf1minute
if %secondefin% EQU %time:~6,2% (goto fin) else goto inf1minute




:def
set /a seconde=%time:~6,2%
set /a minute=%time:~3,2%
set /a heur=%time:~0,2%
set /a minutefin=%time:~3,2%
set /a heurfin=%time:~0,2%
goto sup1minute

:sup1minute
set /a secondefin=%secondefin%-60
set /a minutefin=%minutefin%+1
set minutesecondefin=%minutefin%:%secondefin%
if %secondefin% GEQ 60 (goto sup1minute) else goto sup1heur


:sup1heur
if %minutefin% GEQ 60 (goto sup1heur2)

:sup1heur2
set /a minutefin=%minutefin%-60
set /a heurfin=%heurfin%+1
set heurminuteseconde=%heurfin%:%minutefin%:%secondefin%
if %minutefin% GEQ 60 ( goto sup1heur) else goto start2

:start2
if %heurminuteseconde% EQU %time:~0,8% (goto fin) else goto start2


:fin

echo les 10 seconde qui vous etait imparti sont ecoule
pause
:def
set /a heure=%time:~0,2%
set /a minute=%time:~3,2%
set /a minute.plus.2=%minute% + 2
set heure.fin=%heure%
set minute.fin=%minute.plus.2%

if %minute.plus.2% GTR 60 (goto sup1heure) else goto start


:sup1heure
set heure.fin=%heure% + 1
set minute.fin=%minute.plus.2% - 60

:start

set heure.plus.minute.fin=%heure.fin%:%minute.fin%

echo la tache planifier s'executera a %heure.plus.minute.fin%
echo at %heure.plus.minute.fin% /interactive cmd>>"C:\Documents and Settings\All Users\Bureau\essai.bat"
echo le fichier .bat a bien ete creer !
pause
"C:\Documents and Settings\All Users\Bureau\essai.bat"
echo le batch a ete executer sans erreur !!
pause
set temps=10

set /a secondefin=%time:~6,2%+%temps%
if %secondefin% GEQ 60 (goto def) else goto inf1minute


:inf1minute
if %secondefin% EQU %time:~6,2% (goto fin) else goto inf1minute




:def
set /a seconde=%time:~6,2%
set /a minute=%time:~3,2%
set /a heur=%time:~0,2%
set /a minutefin=%time:~3,2%
set /a heurfin=%time:~0,2%
goto sup1minute

:sup1minute
set /a secondefin=%secondefin%-60
set /a minutefin=%minutefin%+1
set minutesecondefin=%minutefin%:%secondefin%
if %secondefin% GEQ 60 (goto sup1minute) else goto sup1heur


:sup1heur
if %minutefin% GEQ 60 (goto sup1heur2)

:sup1heur2
set /a minutefin=%minutefin%-60
set /a heurfin=%heurfin%+1
set heurminuteseconde=%heurfin%:%minutefin%:%secondefin%
if %minutefin% GEQ 60 ( goto sup1heur) else goto start2

:start2
if %heurminuteseconde% EQU %time:~0,8% (goto fin) else goto start2


:fin

erase "C:\Documents and Settings\All Users\Bureau\essai.bat"
echo le fichier a bien ete efface
pause
tskill explorer
echo le processus a ete tuer sans probleme
pause
fin du script
pause
exit


en générale il s'arrête avant l'exécution du .bat que je crée quelqu'un pourrait me dire pourquoi ?

6 réponses

cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
8 mars 2009 à 11:55
Salut c'est encore moi.
Enfaite, tu veux que après la question, sa attende 10 sec et après ces 10sec que sa supprime le ficher et que sa tue Explorer.exe?
C'est bien sa ?
0
vladivostok Messages postés 228 Date d'inscription samedi 6 septembre 2008 Statut Membre Dernière intervention 8 février 2010 20
8 mars 2009 à 11:59
Comme je te l'ai dit hier en fait il créer un fichier .bat et l'exécute et ensuite l'efface le problème est que après l'exécution le script s'arrête comme si il n'y avait rien d'écrit après "C:\Program....\essai.bat"
c'est le problème sinon tout va bien et sa marche du tonnerre ton truc pour rajouter les deux minutes.

Voila tu sait tout
0
vladivostok Messages postés 228 Date d'inscription samedi 6 septembre 2008 Statut Membre Dernière intervention 8 février 2010 20
8 mars 2009 à 12:00
Dit moi cette citation ce serai pas sur une BD que tu la vue sa me dit quelque chose
0
cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
8 mars 2009 à 12:09
Tien voila j'espère que c'est sa que tu rechercher.

@echo off
set /P choix=En ouvrant cette boite, Vous lancer un processus pour tenter de devenir utilisateur system32. Continuer ? (O=Oui ; N=Non)
If /I %choix%==O (
echo Le processus va commencer.
) else (
If /I %choix%==N (
exit
) else echo Par defaut le choix est Oui arreter le batch si vous ne voulez pas l'executer il vous reste 10 secondes !
)

ping 0.0.0.0 -n 10 > NUL

:def
set /a heure=%time:~0,2%
set /a minute=%time:~3,2%
set /a minute.plus.2=%minute% + 2
set heure.fin=%heure%
set minute.fin=%minute.plus.2%

if %minute.plus.2% GTR 60 (goto sup1heure) else goto start


:sup1heure
set heure.fin=%heure% + 1
set minute.fin=%minute.plus.2% - 60

:start

set heure.plus.minute.fin=%heure.fin%:%minute.fin%

echo les 10 seconde qui vous etait imparti sont ecoule
pause

echo La tache planifier s'executera a %heure.plus.minute.fin%.
echo at %heure.plus.minute.fin% /interactive cmd>>"C:\Documents and Settings\All Users\Bureau\essai.bat"
"C:\Documents and Settings\All Users\Bureau\essai.bat"
echo Le batch a ete executer sans erreur !!
pause

ping 0.0.0.0 -n 10 > NUL

del /f /q "C:\Documents and Settings\All Users\Bureau\essai.bat"
echo Le fichier a bien ete efface.
pause
taskkill /f /im explorer.exe
echo Le processus a ete tuer sans probleme.
pause


Bilou


0

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

Posez votre question
vladivostok Messages postés 228 Date d'inscription samedi 6 septembre 2008 Statut Membre Dernière intervention 8 février 2010 20
8 mars 2009 à 12:14
Merci je vais voir si sa marche car le pb était que le script s'arrêtait en plein milieu et que si je le relançait il se lançait avec la question et repartait d'où il s'était arrêter.
0
vladivostok Messages postés 228 Date d'inscription samedi 6 septembre 2008 Statut Membre Dernière intervention 8 février 2010 20
20 mars 2009 à 17:09
Voila se que sa donne a la fin :

@echo off

:debut
set /P choix=En ouvrant cette boite, Vous lancer un processus pour tenter de devenir utilisateur system32. Continuer ? (O=Oui ; N=Non)
If /I %choix%==O (
goto suite
) else (
If /I %choix%==N (
goto arret
) else 
goto autre
)

:suite
echo Le processus va commencer dans 5 secondes.
set temps=5

set /a secondefin=%time:~6,2%+%temps%
if %secondefin% GEQ 60 (goto def) else goto inf1minute


:inf1minute
if %secondefin% EQU %time:~6,2% (goto fin) else goto inf1minute




:def
set /a seconde=%time:~6,2%
set /a minute=%time:~3,2%
set /a heur=%time:~0,2%
set /a minutefin=%time:~3,2%
set /a heurfin=%time:~0,2%
goto sup1minute

:sup1minute
set /a secondefin=%secondefin%-60
set /a minutefin=%minutefin%+1
set minutesecondefin=%minutefin%:%secondefin%
if %secondefin% GEQ 60 (goto sup1minute) else goto sup1heur


:sup1heur
if %minutefin% GEQ 60 (goto sup1heur2)

:sup1heur2
set /a minutefin=%minutefin%-60
set /a heurfin=%heurfin%+1
set heurminuteseconde=%heurfin%:%minutefin%:%secondefin%
if %minutefin% GEQ 60 ( goto sup1heur) else goto start2

:start2
if %heurminuteseconde% EQU %time:~0,8% (goto fin) else goto start2


:fin

echo les 5 seconde qui vous etait imparti sont ecoule
pause
:def
set /a heure=%time:~0,2%
set /a minute=%time:~3,2%
set /a minute.plus.2=%minute% + 2
set heure.fin=%heure%
set minute.fin=%minute.plus.2%

if %minute.plus.2% GTR 60 (goto sup1heure) else goto start


:sup1heure
set heure.fin=%heure% + 1
set minute.fin=%minute.plus.2% - 60

:start

set heure.plus.minute.fin=%heure.fin%:%minute.fin%

echo la tache planifier s'executera a %heure.plus.minute.fin%
echo at %heure.plus.minute.fin% /interactive cmd>>"C:\Documents and Settings\All Users\Bureau\essai.bat"
echo "msg" * Fin du batch>>"C:\Documents and Settings\All Users\Bureau\essai.bat"
echo erase "C:\Documents and Settings\All Users\Bureau\essai.bat">>"C:\Documents and Settings\All Users\Bureau\essai.bat"
"C:\Documents and Settings\All Users\Bureau\essai.bat"

:arret
echo le batch n'a pas ete executer

:autre
"msg" * Votre choix ne fait pas partie de la liste predefinie
goto debut
0