Я хочу изменить приоритет процесса Windows через командную строку.
Как я могу это сделать?
Я хочу изменить приоритет процесса Windows через командную строку.
Как я могу это сделать?
Синтаксис командной строки:
wmic process where name="AppName" CALL setpriority ProcessIDLevel
Пример:
wmic process where name="calc.exe" CALL setpriority 32768
или же
wmic process where name="calc.exe" CALL setpriority "above normal"
Приоритет:
Небольшое дополнение.
Вы также можете использовать строковые значения вместо целых чисел (их легче запомнить), например:
wmic process where name="calc.exe" CALL setpriority "idle"
Возможные значения:"холостой", "низкий", "ниже нормы", "нормальный", "выше нормы", "высокий приоритет", "реальное время"
PS. Не забывайте кавычки, особенно если вы используете несколько слов в строковом значении
Из командной строки я бы просто использовал PowerShell. Этот пример запускает calc.exe, находит его процесс и настраивает его класс приоритета на "IDLE", то есть LOW:
start /b /wait powershell.exe -command "calc.exe;$prog = Get-Process -Name calc;$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::IDLE"
Укажите одно из следующих значений перечисления: « Normal, Idle, High, RealTime, BelowNormal, AboveNormal
»
Вот то же самое из PowerShell с разделенными линиями:
calc.exe
$prog = Get-Process -Name calc
$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::IDLE
В дополнение к существующим ответам на вопрос Windows Equivalent of «nice» перечислены еще несколько решений:
Кроме того, старая утилита SetPriority может все еще работать, но я не пробовал ее уже много лет.
Некоторые из этих решений могут не работать с системными службами или могут быть запущены от имени администратора.
Я использую Windows 7 64-bit.
Команда wmic не является надежной. По моему значительному опыту, он неожиданно потерпел неудачу по слишком многим (главным образом необъяснимым) причинам.
Лучшая команда из-за своей надежности - команда START. Синтаксис очень прост (это команда запуска из 3 строк для командного файла):
:: Boost thread priority
SET command=<program.exe> <options>
start "" /REALTIME /B /W %command%
По моему мнению, его высокая степень надежности проистекает из того факта, что он устанавливает уровень приоритета, с которым запускается программа .exe, а не пытается вмешиваться с приоритетом после запуска программы с другим приоритетом.