Arrêt .bat

Résolu
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 ?
--
"La capacité d'apprendre est un don ; La faculté d'apprendre est un talent ; La volonté d'apprendre est un choix."

6 réponses

  1. 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 ?
    1. 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
      1. Dit moi cette citation ce serai pas sur une BD que tu la vue sa me dit quelque chose
        1. 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

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