Windows Эквивалент "хороший"
Есть ли эквивалент Windows для команды Unix, хорошо?
Я специально ищу что-то, что могу использовать в командной строке, и не меню "Установить приоритет" в диспетчере задач.
Мои попытки найти это в Google были сорваны теми, кто не может придумать лучшие прилагательные.
Ответы
Ответ 1
Если вы хотите установить приоритет при запуске процесса, вы можете использовать встроенную команду START :
START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B] [command/program] [parameters]
Используйте параметры от низкого до нижнего уровня для установки приоритета запускаемой команды/программы. Похоже, самое простое решение. Нет загрузки или написания сценария. Другие решения, вероятно, работают на уже запущенных процессорах.
Ответ 2
Если вы используете PowerShell, вы можете написать script, который позволит вам изменить приоритет процесса. Я нашел следующую функцию PowerShell в блоке Monad:
function set-ProcessPriority {
param($processName = $(throw "Enter process name"), $priority = "Normal")
get-process -processname $processname | foreach { $_.PriorityClass = $priority }
write-host "`"$($processName)`" priority is set to `"$($priority)`""
}
В командной строке PowerShell вы должны сделать что-то:
set-ProcessPriority SomeProcessName "High"
Ответ 3
Возможно, вы захотите использовать ProcessTamer, который "автоматизирует" процесс понижения или обновления приоритета процесса на основе ваших настроек.
Я использую это в течение двух лет. Это очень просто, но действительно эффективно!
Ответ 4
from http://techtasks.com/code/viewbookcode/567
# This code sets the priority of a process
# ---------------------------------------------------------------
# Adapted from VBScript code contained in the book:
# "Windows Server Cookbook" by Robbie Allen
# ISBN: 0-596-00633-0
# ---------------------------------------------------------------
use Win32::OLE;
$Win32::OLE::Warn = 3;
use constant NORMAL => 32;
use constant IDLE => 64;
use constant HIGH_PRIORITY => 128;
use constant REALTIME => 256;
use constant BELOW_NORMAL => 16384;
use constant ABOVE_NORMAL => 32768;
# ------ SCRIPT CONFIGURATION ------
$strComputer = '.';
$intPID = 2880; # set this to the PID of the target process
$intPriority = ABOVE_NORMAL; # Set this to one of the constants above
# ------ END CONFIGURATION ---------
print "Process PID: $intPID\n";
$objWMIProcess = Win32::OLE->GetObject('winmgmts:\\\\' . $strComputer . '\\root\\cimv2:Win32_Process.Handle=\'' . $intPID . '\'');
print 'Process name: ' . $objWMIProcess->Name, "\n";
$intRC = $objWMIProcess->SetPriority($intPriority);
if ($intRC == 0) {
print "Successfully set priority.\n";
}
else {
print 'Could not set priority. Error code: ' . $intRC, "\n";
}
Ответ 5
PrcView также работает с командной строкой:
http://www.teamcti.com/pview/prcview.htm
(Проверьте параметр -ph)