Изменение приоритета процесса Windows с помощью командной строки

32

Я хочу изменить приоритет процесса Windows через командную строку.

Как я могу это сделать?

    
задан Bobs 17.07.2013 в 07:47
источник

4 ответа

44

Синтаксис командной строки:

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"

Приоритет:

  • idle: 64 (или "idle")
  • ниже нормального: 16384 (или "ниже нормального")
  • normal: 32 (или "normal")
  • выше нормального: 32768 (или "выше нормального")
  • высокий приоритет: 128 (или "высокий приоритет")
  • в реальном времени: 256 (или «в реальном времени»)
ответ дан Bobs 17.07.2013 в 07:47
источник
9

Небольшое дополнение.

Вы также можете использовать строковые значения вместо целых чисел (проще запомнить):

 wmic process where name="calc.exe" CALL setpriority "idle"

Возможные значения: «холостой», «низкий», «ниже обычного», «нормальный», «выше обычного», «высокий приоритет», «в реальном времени»

PS. Не забывайте кавычки, особенно если использовать несколько слов в строковом значении

    
ответ дан Ashtray 17.07.2013 в 08:33
5

Из командной строки пакета я бы просто использовал 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
    
ответ дан Knuckle-Dragger 11.02.2014 в 21:17
3

В дополнение к существующим ответам, вопрос эквивалент Windows «хороший» перечисляет еще несколько решений:

  1. Используя команду START в командной строке (CMD).
  2. Используя бесплатный ProcessTamer , чтобы настроить правило на .exe который автоматически применяется при каждом запуске этого процесса.
  3. Использование сценария PowerShell здесь .
  4. Использование сценария VBScript здесь .

Кроме того, старая утилита SetPriority может работать, но я не пробовал ее уже много лет.

Некоторые из этих решений могут не работать с системными службами или, возможно, должны быть Запуск от имени администратора .

    
ответ дан harrymc 11.02.2014 в 11:25