2012-07-26 17 views
9

Questa è una sorta di follow-up della mia domanda precedente (link).Il file batch in esecuzione in Utilità di pianificazione continua a essere eseguito dopo il completamento del file batch

Per collaudare il tutto ho fatto questo file batch semplice per garantire l'utilità di pianificazione è stato correttamente eseguendo il file batch:

cd "C:\Users\user\Desktop" 
echo. 2>test.txt 

Così, dopo il documento test.txt viene creata sul desktop, il file batch dovrebbe finire ma continua a funzionare:

Running Tasks List

c'è un modo, sia alla fine del file batch o un'impostazione nelle proprietà del task, per garantire che il processo si chiude cmd?

Grazie!

risposta

0

La soluzione che ho trovato è stato quello di aggiungere questa riga alla fine del file batch:

TASKKILL /F /IM cmd.exe 

Ora, dopo viene eseguita l'operazione di file batch e completa, non è più nella lista Tutte le attività in corso e lo stato torna a "Pronto" invece di rimanere in "In esecuzione".

2

L'esecuzione di TASKKILL /F /IM cmd.exe interromperà tutti i processi di cmd.exe, indipendentemente dal fatto che sia stato generato o meno questo file batch. Probabilmente non è un comportamento desiderabile. :-)

A giudicare dall'ultima domanda, suppongo che tu stia ancora eseguendo il tuo compito con cmd.exe /k, che manterrà quella finestra aperta indefinitamente. Per un'attività non presidiata, cmd.exe /c è una scelta migliore. Al termine del file batch, il processo dovrebbe terminare.

+0

Grazie per il vostro contributo, io includere questo nei file batch futuri (se necessario). Ho finito per scrivere un programma di backup per gestire tutto, piuttosto che un wrapper per i file batch di backup esistenti. – Anders

6

è possibile aggiungere "uscita" all'ultima riga dello script

cd "C:\Users\user\Desktop" 
echo. 2>test.txt 
exit 
3

Stesso qui su Windows 7. Mettere tutti i file batch in una directory nel Utente percorso specifico che gestisce il compito

run programma = "cmd.exe" (senza un percorso)

gli extra, miniera dove = "/C "C: \ Users [nome utente] \ qualunque \ your_batchfile.bat" >> log.txt " "

" >> log.txt "in modo che posso vedere l'uscita del lotto ...

inizio nella =" C: \ Users [nome utente] \ qualunque "

ho anche controllato il "correre con il massimo dei privilges" scatola

dopo che tutto ha funzionato bene :)

12

ho incontrato lo stesso identico problema. Tuttavia, mi sono sentito ingannato quando ho letto ciò che Trevor778 ha scritto in questo post:

Ho avuto lo stesso problema - l'attività ha funzionato ma lo stato continuava a mostrare Running. Una cosa semplice da provare è fare clic su Libreria Task Scheduler nella colonna di sinistra. Fai clic su Azione/Aggiorna.Presto. Stato cambiato in Pronto. Questo è tutto per me, l'attività è andata bene, solo lo stato non si è aggiornato. Spero che questo ti aiuti.

ref: https://social.technet.microsoft.com/Forums/en-US/2f6dc29c-3b8b-45f5-a2a7-53e076acc062/task-scheduler-scheduler-status-is-being-running-always?forum=winservergen

+0

Grazie per il suggerimento !, sembra che lo stato non si aggiorni al termine dell'attività, senza premere Aggiorna. –

Problemi correlati