Ответы:
Синтаксис командной строки:
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"
Небольшое дополнение.
Вы также можете использовать строковые значения вместо целых чисел (легче запомнить), например:
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 может все еще работать, но я не пробовал ее уже много лет.
Некоторые из этих решений могут не работать с системными службами или могут быть запущены от имени администратора .
Я использую 64-разрядную версию Windows 7.
WMIC команда не надежен. По моему значительному опыту, он неожиданно потерпел неудачу по слишком многим (главным образом необъяснимым) причинам.
Лучшая команда из-за своей надежности - это команда START. Синтаксис очень прост (это команда запуска из 3 строк для пакетного файла ):
:: Boost thread priority
SET command=<program.exe> <options>
start "" /REALTIME /B /W %command%
По моему мнению, его высокая степень надежности проистекает из того факта, что он устанавливает уровень приоритета, с которым запускается программа .exe, а не пытается вмешиваться с приоритетом после запуска программы с другим приоритетом.
wmic process where "CommandLine like '%calc%'" CALL setpriority "below normal"