Adakah cara untuk menulis file .bat Windows untuk mematikan proses? [Tutup]


114

Setiap kali saya menyalakan mesin pengembangan milik perusahaan saya, saya harus mematikan 10+ proses menggunakan Task Manager atau aplikasi manajemen proses lainnya hanya untuk mendapatkan kinerja yang layak dari IDE saya. Ya, ini adalah proses dari program yang dipasang perusahaan saya di komputer saya untuk keamanan dan kepatuhan. Yang ingin saya lakukan adalah memiliki file atau skrip .bat yang dengannya saya dapat menghentikan proses yang dimaksud.

Apakah ada yang tahu bagaimana melakukan ini?


Ini juga harus berguna ketika dalam lingkungan otomasi dan subproses lari harus dihentikan jika gagal untuk menyelesaikan atau merespon dalam jumlah waktu yang layak.
Danny Staple

Saya memposting tautan pertanyaan ini ke semua kolega langsung saya karena kami adalah sekitar 20 pengembang S / W di perusahaan dengan sekitar 2000 insinyur (melakukan CAD). Kami secara permanen berjuang dengan departemen administrasi TI karena (karena kebijakan keamanan) kami hampir tidak dapat melakukan pekerjaan kami ... (Secara teknis tidak membantu, tetapi senang mendengar bahwa pengembang S / W lain tampaknya memiliki masalah yang sama .)
Scheff

Jawaban:


171

Anda dapat melakukan ini dengan ' taskkill '. Dengan parameter / IM, Anda dapat menentukan nama gambar.

Contoh:

taskkill /im somecorporateprocess.exe

Anda juga dapat melakukan ini untuk ' memaksa ' membunuh:

Contoh:

taskkill /f /im somecorporateprocess.exe

Cukup tambahkan satu baris per proses yang ingin Anda hentikan, simpan sebagai file .bat, dan tambahkan di direktori startup Anda. Masalah terpecahkan!

Jika ini adalah sistem lama, PsKill akan melakukan hal yang sama.


34
LOL - "somecorporateprocess.exe" Cukup banyak menyimpulkan pemutusan hubungan TI perusahaan dari tim pengembang.
maplemale

8
Saya berhasil menggunakan taskkill /F /IM <processname.exe> /Tuntuk memaksa penutupan semua proses dengan nama mereka.
Benj

tidak bekerja pada win10 untuk membunuh proses latar belakang. semua proses latar belakang di win 10 diberi nama RuntimeBroker.exedan ketika mencoba membunuh tidak ada yang terjadi.
Mostafa

106
taskkill /f /im "devenv.exe"

ini akan secara paksa mematikan pid dengan nama exe "devenv.exe"

setara dengan -9 pada perintah nix'y kill


3
Itu tidak berhasil sampai saya menambahkan bendera / f ke perintah. Terima kasih!
Denis M. Kitchen

4
Ini akan mematikan SEMUA entri dengan nama yang diberikan. Sangat berguna ketika program menjadi bumerang dan membuka notepad.exe 1000 kali di latar belakang:] * ahem *
Richard de Wit

8

Karena TASKKILL mungkin tidak tersedia di beberapa Home / edisi dasar windows di sini beberapa alternatif:

TSKILL processName

atau

TSKILL PID

Perlu diingat bahwa processNametidak boleh memiliki .exesufiks dan dibatasi hingga 18 karakter.

Pilihan lainnya adalah WMIC:

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

wmic menawarkan lebih banyak fleksibilitas daripada taskkill dengan pencocokan mirip SQL-nya. Dengan wmic Path win32_process getAnda dapat melihat file yang tersedia, Anda dapat memfilter (dan %dapat digunakan sebagai wildcard).


5

Saya berasumsi sebagai pengembang, Anda memiliki beberapa tingkat kendali administratif atas mesin Anda. Jika demikian, dari baris perintah, jalankan msconfig.exe. Anda dapat menghapus banyak proses bahkan dari awal, sehingga menghilangkan kebutuhan untuk mematikannya dengan solusi yang disebutkan di atas.


5

Dapatkan Autoruns dari Mark Russinovich, orang Sysinternals yang menemukan Sony Rootkit ... Software terbaik yang pernah saya gunakan untuk membersihkan hal-hal yang dimulai secara otomatis.


4

Unduh PSKill . Tulis file batch yang memanggilnya untuk setiap proses yang Anda inginkan mati, dengan meneruskan nama proses untuk masing-masing.



0

Silakan temukan logika di bawah ini di mana ia bekerja pada kondisi tersebut.

Jika kita hanya memanggil taskkill /im applicationname.exe, itu akan mematikan hanya jika proses ini sedang berjalan. Jika proses ini tidak berjalan, maka akan terjadi error.

Sehingga untuk memeriksa sebelum takskilldipanggil, pemeriksaan dapat dilakukan untuk memastikan bahwa eksekusi taskkillakan dijalankan hanya jika proses tersebut berjalan, sehingga tidak menimbulkan kesalahan.

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

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

1
lebih mudah untuk mengarahkan ulang pesan kesalahan taskkillkenul
Stephan

0

Di sini saya menulis contoh perintah yang dapat Anda tempelkan di cmdprompt baris perintah dan ditulis untuk chrome.exe.

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

Untuk hanya mengambil semua yang PIDterdaftar pada tasklistperintah di bawah ini dan mengeksekusi TASKKILL /PIDpada setiapPID

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

Jika Anda menggunakan untuk dalam file batch cukup gunakan %% P, bukan% P

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.