2013-03-24 16 views
7

Voglio creare un file batch che avvia un programma e dopo 20 minuti chiude il programma e lo riavvia.File batch - riavviare il programma ogni 20 minuti

L'unica cosa che so di un file batch è come iniziare un programma:

@echo off 
Start [adress of application] 
+0

probabilmente vorrete usare schtasks.exe per pianificare l'attività. Ti consentirà di pianificare un'attività per un determinato periodo di tempo e di limitare la durata dell'esecuzione. Se vuoi una risposta più specifica, dicci quale sistema operativo stai utilizzando. –

risposta

2
@echo off 
:loop 
start yourtarget.exe ... 
timeout /t 1200 >null 
taskkill /f /im yourtarget.exe >nul 
goto loop 

dovrebbe fare il lavoro.

+0

Sì, di nuovo a destra! Risolto ... – Magoo

+0

Ottiene la query non valida Error: 'timeout' non viene riconosciuto come comando interno o esterno, programma eseguibile o programma batch. – mm1985

+0

timeout.exe è un'utilità integrata che dovrebbe essere fornita con Windows. Apparentemente è stato standard dal W2000 **, MA diverse edizioni potrebbero non includerlo. Sul mio sistema W7 Home Premium, è in c: \ windows \ system32 e c'è una versione a 64 bit in c: \ windows \ syswow64. Prova 'dir/s \ timeout.exe'. Se il file si trova, assicurarsi che la directory in cui si trova sia inclusa nel PATH. Se non si trova, prova a cercare su Googling 'timeout.exe download' – Magoo

0

Per chiunque imbattersi in questa vecchia domanda: Invece di timeout.exe si può anche ping ad un indirizzo che sicuramente non esiste:

ping 999.199.991.91 -n 1 -w 60000 >NUL 

È possibile modificare 60000 a tutto ciò che si vuole ritardare (in Signorina).

1 second = 1000 

10 seconds = 10000 

60 seconds = 60000 

E così via ..

11

questo funziona:

@echo off       //Turn off screen text messages 
:loop        //Set marker called loop, to return to 
start "Wicked_Article_Creator" "C:\Wicked Article Creator\Wicked Article Creator.exe" //Start program, with title and program path 
timeout /t 1200 >null    //Wait 20 minutes 
taskkill /f /im "Image Name" >nul //Image name, e.g. WickedArticleCreator.exe, can be found via Task Manager > Processes Tab > Image Name column (look for your program) 
timeout /t 7 >null     //Wait 7 seconds to give your prgram time to close fully - (optional) 
goto loop       //Return to loop marker 
+1

Stavo cercando qualcosa di simile, e funziona perfettamente. Solo una cosa però, il prompt dei comandi è visibile per tutto il tempo. È possibile nascondere la finestra di cmd e mostrarla solo quando l'exe sta iniziando e poi nasconderlo di nuovo? –

Problemi correlati