23.03.2016, Vladimír Klaus, navštíveno 5150x
Občas je třeba ukončit nějakou aplikaci, a to bez ohledu na cokoliv. Tedy i pokud se nějak brání, například potvrzovacím dialogem nebo ji někdo drží apod. Slouží k tomu jednoduchý příkaz taskkill. Má docela dost parametrů, viz odkazy na konci článku, ale my zde použijeme jen to základní.
Konkrétní příklad, kde se to opravdu hodí, je ukončení MS Outlooku 2016. Ten se, na rozdíl od verze 2010, chová totiž jinak a pokud kupříkladu instalujete nějaký add-in, který je již používán, instalátor si s tím neporadí a Outlook nedokáže ukončit.
Napíšeme si tedy malou dávku
@echo off
taskkill /IM outlook.exe
pause
Parametr /IM znamená "image" neboli název souboru/procesu, který chceme ukončit. Výsledkem je ukončení aplikace, pokud běží, případně hlášení, že takový proces neexistuje.
Pokud jste si toto vyzkoušeli, ale měli zobrazen Outlook a ještě třeba otevřený e-mail nebo kontakt, asi jste zjistili, že se zavřelo jen jedno okno a ostatní zůstalo. Důvodem je to, že vlastně jede "více Outlooků", přesněji více procesů vyvolaných Outlookem.
Jak ukončit opravdu vše? Do parametrů přidáme /F, což způsobí vynucené zavření opravdu všech odpovídajících procesů.
@echo off
taskkill /F /IM outlook.exe
pause
Zavření může chvíli trvat, a proto pokud potřebujete třeba spustit onu instalaci, je dobré vložit menší prodlevu, např. 3 vteřiny.
@echo off
taskkill /F /IM outlook.exe
timeout 3 > NUL
setup-myaddin-1.0.1.exe /verysilent
pause
Teď už by mělo vše projít bez jakéhokoliv problému. Ovšem než podobnou dávku nasadíte, je třeba si uvědomit, že násilným ukončením Outlooku přijdete bez varování i o rozepsaný e-mail či upravovaný kontakt.