Câu trả lời:
Cú pháp dòng lệnh:
wmic process where name="AppName" CALL setpriority ProcessIDLevel
Thí dụ:
wmic process where name="calc.exe" CALL setpriority 32768
hoặc là
wmic process where name="calc.exe" CALL setpriority "above normal"
Sự ưu tiên:
wmic process where 'name="calc.exe"' CALL setpriority "idle"
Một bổ sung nhỏ.
Bạn cũng có thể sử dụng các giá trị chuỗi thay vì số nguyên (dễ nhớ hơn) như thế:
wmic process where name="calc.exe" CALL setpriority "idle"
Các giá trị có thể: "nhàn rỗi", "thấp", "dưới mức bình thường", "bình thường", "trên mức bình thường", "mức độ ưu tiên cao", "thời gian thực"
Tái bút Đừng quên dấu ngoặc kép, đặc biệt nếu sử dụng nhiều từ trong giá trị chuỗi
Từ dòng lệnh hàng loạt, tôi chỉ cần sử dụng PowerShell. Ví dụ này bắt đầu calc.exe, tìm quy trình của nó và điều chỉnh lớp ưu tiên của nó thành "IDLE", còn gọi là THẤP:
start /b /wait powershell.exe -command "calc.exe;$prog = Get-Process -Name calc;$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::IDLE"
Chỉ định một trong các giá trị liệt kê sau: " Normal, Idle, High, RealTime, BelowNormal, AboveNormal
"
Đây là điều tương tự từ PowerShell với các dòng chia:
calc.exe
$prog = Get-Process -Name calc
$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::IDLE
Ngoài các câu trả lời hiện có, câu hỏi Windows Equivalent of 'beautiful' liệt kê một số giải pháp khác:
Ngoài ra, tiện ích SetP Warriority cũ có thể vẫn hoạt động, nhưng tôi đã không thử nó trong nhiều năm nay.
Một số giải pháp này có thể không hoạt động trên các dịch vụ hệ thống hoặc có thể cần được Chạy với tư cách Quản trị viên .
Tôi đang chạy Windows 7 64-bit.
Các wmic lệnh là không đáng tin cậy. Theo kinh nghiệm đáng kể của tôi, nó thất bại bất ngờ vì quá nhiều lý do (chủ yếu là không thể giải thích được).
Lệnh tốt nhất có thể, vì độ tin cậy của nó, là lệnh START. Cú pháp rất đơn giản (đây là lệnh chạy 3 dòng cho một tệp bó ):
:: Boost thread priority
SET command=<program.exe> <options>
start "" /REALTIME /B /W %command%
Theo tôi, mức độ tin cậy cao của nó xuất phát từ thực tế là nó đặt mức độ ưu tiên mà chương trình .exe được khởi chạy, thay vì cố gắng can thiệp vào mức độ ưu tiên sau khi chương trình bắt đầu chạy với mức độ ưu tiên khác.
wmic process where "CommandLine like '%calc%'" CALL setpriority "below normal"