2008-08-29 23 views
88

Vì vậy, mỗi khi tôi bật máy phát triển thuộc sở hữu của công ty tôi phải giết hơn 10 quy trình bằng cách sử dụng trình quản lý tác vụ hoặc bất kỳ ứng dụng quản lý quy trình nào khác để có hiệu suất tốt hơn trong IDE của tôi. Có, đây là các quy trình từ các chương trình mà công ty của tôi cài đặt trên máy của tôi để bảo mật và tuân thủ. Những gì tôi muốn làm là có một tập tin .bat hoặc kịch bản của một số loại mà tôi chỉ có thể bắn ra và giết chết các quá trình trong câu hỏi.Bất kỳ cách nào để viết tệp .bat của Windows để diệt các quy trình?

Bất kỳ ai đã biết cách thực hiện việc này?

+0

Điều này cũng có ích khi trong môi trường tự động hóa và một tiến trình con chạy đi cần được chấm dứt nếu nó không kết thúc hoặc trả lời trong một khoảng thời gian hợp lý. –

+0

Tôi đã đăng liên kết câu hỏi này lên tất cả các đồng nghiệp trực tiếp của tôi bởi vì chúng tôi đang thảo luận 20 nhà phát triển S/W trong một công ty với vòng xoay 2000 kỹ sư (làm CAD). Chúng tôi đang gặp khó khăn với bộ phận quản trị CNTT vì (do chính sách bảo mật), chúng tôi gần như không thể thực hiện công việc của mình ... (Nó không giúp ích gì về mặt kỹ thuật nhưng thật tuyệt khi biết rằng các nhà phát triển S/W khác có vấn đề tương tự .) – Scheff

Trả lời

129

Bạn có thể làm điều này với 'taskkill' giết. Với tham số/IM, bạn có thể chỉ định tên hình ảnh. Ví dụ:

taskkill/im somecorporateprocess.exe

Bạn cũng có thể làm điều này để 'lực' giết:

taskkill/f/im somecorporateprocess.exe

Chỉ cần thêm 1 dòng cho mỗi quá trình bạn muốn giết, lưu dưới dạng tệp .bat và đặt trong thư mục khởi động của bạn. Đã giải quyết được vấn đề!

Nếu đây là một hệ thống cũ, PsKill sẽ thực hiện tương tự.

+23

LOL - "somecorporateprocess.exe" Khá nhiều khoản tiền ngắt kết nối CNTT của công ty từ các nhóm phát triển. – maplemale

+5

Tôi đã thành công bằng cách sử dụng 'taskkill/F/IM ​​/ T' để buộc đóng * tất cả * quy trình theo tên của chúng. – Benj

3

Tải xuống PSKill. Viết một tập tin batch gọi nó cho mỗi quá trình bạn muốn chết, đi qua tên của quá trình cho mỗi.

102
taskkill /f /im "devenv.exe" 

này sẽ buộc giết pid với tên exe "devenv.exe"

tương đương với -9 trên nix'y lệnh

+3

Nó không hoạt động cho đến khi tôi thêm cờ/f vào lệnh. Cảm ơn bạn! –

+4

Thao tác này sẽ xóa ** ALL ** mục với tên được cung cấp. Đặc biệt hữu ích khi chương trình sao lưu và mở notepad.exe 1000 lần ở chế độ nền:] \ * ahem \ * –

1

Sử dụng Powershell! Được xây dựng trong các lệnh ghép ngắn để quản lý các quy trình. Examples here (đường cứng), here (tích hợp sẵn) và here (thêm).

5

Tôi giả định là nhà phát triển, bạn có một số mức độ kiểm soát hành chính đối với máy của mình. Nếu vậy, từ dòng lệnh, chạy msconfig.exe. Bạn có thể loại bỏ nhiều quá trình ngay cả khi bắt đầu, do đó loại bỏ sự cần thiết phải giết chúng với các giải pháp được đề cập ở trên.

4

Nhận Autoruns từ Mark Russinovich, anh chàng Sysinternals đã phát hiện ra bộ phần mềm Sony Rootkit ... Phần mềm tốt nhất mà tôi từng sử dụng để dọn dẹp mọi thứ bắt đầu tự động.

3

Như taskkill có thể không có sẵn trên một số chủ/phiên bản cơ bản của cửa sổ ở đây một số lựa chọn thay thế:

TSKILL processName 

hoặc

TSKILL PID 

Có trên nhớ rằng processName không nên có .exe hậu tố và bị hạn chế đến 18 ký tự.

lựa chọn khác là WMIC:

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

wmic phục vụ thậm chí nhiều hơn linh hoạt hơn taskkill .Với wmic Path win32_process get bạn sẽ nhìn thấy fileds có sẵn, bạn có thể lọc.

0

Vui lòng tìm logic bên dưới nơi hoạt động trên điều kiện.

Nếu chúng ta chỉ cần gọi taskkill /im applicationname.exe, nó sẽ chỉ giết nếu quá trình này đang chạy. Nếu quá trình này không chạy, nó sẽ ném một lỗi.

Để kiểm tra trước khi takskill được gọi, kiểm tra có thể được thực hiện để đảm bảo thực thi taskkill sẽ chỉ được thực hiện nếu quá trình đang chạy, để nó không bị lỗi.

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

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

dễ dàng chuyển hướng thông báo lỗi của 'taskkill' sang' nul' – Stephan

0

Ở đây tôi đã viết một lệnh ví dụ mà bạn có thể dán vào dòng nhắc cmd lệnh của bạn và được viết cho chrome.exe.

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

Các chỉ mất tất cả các PID s niêm yết trên Sở tasklist lệnh dưới đây và thực hiện TASKKILL /PID trên mỗi PID

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

Nếu bạn sử dụng trong một tập tin thực thi chỉ cần sử dụng %% P thay vì % P

Các vấn đề liên quan