Arrêt .bat

Résolu
vladivostok Messages postés 239 Statut Membre -  
vladivostok Messages postés 239 Statut Membre -
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. cs-bilou Messages postés 836 Statut Membre 164
     
    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
  2. vladivostok Messages postés 239 Statut Membre 20
     
    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
  3. vladivostok Messages postés 239 Statut Membre 20
     
    Dit moi cette citation ce serai pas sur une BD que tu la vue sa me dit quelque chose
    0
  4. cs-bilou Messages postés 836 Statut Membre 164
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. vladivostok Messages postés 239 Statut Membre 20
     
    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
  7. vladivostok Messages postés 239 Statut Membre 20
     
    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