İşlemleri sonlandırmak için bir Windows .bat dosyası yazmanın herhangi bir yolu var mı? [kapalı]


114

Şirkete ait geliştirme makinemi her açtığımda, IDE'mden iyi bir performans elde etmek için Görev Yöneticisi'ni veya başka bir süreç yönetimi uygulamasını kullanarak 10'dan fazla işlemi öldürmem gerekiyor. Evet, bunlar şirketimin güvenlik ve uyumluluk için makineme yüklediği programlardan gelen süreçlerdir. Yapmak istediğim şey, söz konusu işlemleri sonlandırabileceğim bir .bat dosyası veya komut dosyasına sahip olmak.

Birileri bunun nasıl yapıldığını biliyor mu?


Bu, bir otomasyon ortamında ve yeterli bir süre içinde bitiremediği veya yanıt veremediği takdirde bir kaçma alt işleminin sonlandırılması gerektiğinde de kullanışlı olmalıdır.
Danny Staple

Bu soru bağlantısını tüm doğrudan meslektaşlarıma gönderdim çünkü yaklaşık 2000 mühendise sahip bir şirkette yaklaşık 20 S / W geliştiricisiyiz (CAD yapıyor). BT yönetim departmanıyla kalıcı olarak mücadele ediyoruz çünkü (güvenlik politikası nedeniyle) işimizi neredeyse yapamıyoruz ... (Teknik olarak yardımcı olmuyor, ancak diğer yazılım geliştiricilerin benzer sorunları olduğunu duymak güzel. .)
Scheff

Yanıtlar:


171

Bunu ' taskkill ' ile yapabilirsiniz . / IM parametresiyle, görüntü adlarını belirtebilirsiniz.

Misal:

taskkill /im somecorporateprocess.exe

Bunu öldürmeye ' zorlamak ' için de yapabilirsiniz :

Misal:

taskkill /f /im somecorporateprocess.exe

Öldürmek istediğiniz her işlem için bir satır ekleyin, onu .bat dosyası olarak kaydedin ve başlangıç ​​dizininize ekleyin. Sorun çözüldü!

Bu eski bir sistemse , PsKill de aynısını yapacaktır.


34
LOL - "somecorporateprocess.exe" Kurumsal BT'nin geliştirme ekiplerinden kopukluğunu hemen hemen özetliyor.
maplemale

8
Tüm süreçleri kendi adlarıyla taskkill /F /IM <processname.exe> /Tkapatmaya zorlayarak başarılı oldum .
Benj

arka planı öldürme işlemi için win10 üzerinde çalışmaz. Win 10'daki tüm arka plan işlemleri adlandırıldı RuntimeBroker.exeve öldürmeyi denediğinde hiçbir şey olmadı.
Mostafa

106
taskkill /f /im "devenv.exe"

bu, "devenv.exe" exe adlı pid'i zorla öldürecektir

nix'y kill komutunda -9'a eşdeğer


3
Komuta / f bayrağını ekleyene kadar çalışmadı. Teşekkür ederim!
Denis M. Kitchen

4
Bu , sağlanan adla TÜM girdileri öldürecektir . Bir program geri teptiğinde ve notepad.exe'yi arka planda 1000 kez açtığında özellikle kullanışlıdır:] * ahem *
Richard de Wit

8

TASKKILL, bazı Home / temel Windows sürümlerinde kullanılamayabileceğinden, burada bazı alternatifler:

TSKILL processName

veya

TSKILL PID

Son ekin processNameolmaması gerektiğini .exeve 18 karakterle sınırlı olduğunu unutmayın.

Diğer bir seçenek ise WMIC:

wmic Path win32_process Where "Caption Like 'MyProcess%.exe'" Call Terminate

wmic, SQL benzeri eşleştiricileriyle taskkill'den daha fazla esneklik sunar. wmic Path win32_process getMevcut dosyaları görebilir ve filtreleyebilirsiniz (ve %joker karakter olarak kullanılabilir).


5

Bir geliştirici olarak, makineniz üzerinde bir dereceye kadar idari kontrolünüz olduğunu varsayıyorum. Öyleyse, komut satırından msconfig.exe'yi çalıştırın. Birçok işlemi başlangıçtan bile kaldırabilir, böylece yukarıda belirtilen çözümlerle onları sonlandırma ihtiyacını ortadan kaldırabilirsiniz.


5

Sony Rootkit'i keşfeden Sysinternals çalışanı Mark Russinovich'ten Autoruns alın ... Otomatik olarak başlayan şeyleri temizlemek için şimdiye kadar kullandığım en iyi yazılım.


4

PSKill'i indirin . Ölü olmasını istediğiniz her işlem için onu çağıran, her biri için işlemin adını ileten bir toplu iş dosyası yazın.



0

Lütfen koşulda çalıştığı aşağıdaki mantığı bulun.

Basitçe ararsak taskkill /im applicationname.exe, ancak bu işlem çalışıyorsa öldürür. Bu işlem çalışmıyorsa, bir hata atacaktır.

Önceden takskillkontrol etmek için taskkill, çalıştırma işleminin yalnızca işlem çalışıyorsa yürütüleceğinden emin olmak için bir kontrol yapılabilir , böylece hata vermez.

tasklist /fi "imagename eq applicationname.exe" |find ":" > nul

if errorlevel 1 taskkill /f /im "applicationname.exe"

1
kolay sadece bir hata mesajı yönlendirmek taskkilliçinnul
Stephan

0

Burada cmdkomut satırı isteminize yapıştırabileceğiniz ve için yazılmış bir örnek komut yazdım chrome.exe.

FOR /F "tokens=2 delims= " %P IN ('tasklist /FO Table /M "chrome*" /NH') DO (TASKKILL /PID %P)

For sadece PIDaşağıdaki tasklistkomutta listelenen tüm komutları alır ve TASKKILL /PIDherPID

tasklist /FO Table /M "chrome*" /NH

Bir toplu iş dosyasında for kullanırsanız,% P yerine sadece %% P kullanın

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.