Есть ли Windows-эквивалент команды Unix, отлично?
Я специально ищу что-то, что можно использовать в командной строке, и нет в меню «Установить приоритет» из диспетчера задач.
Мои попытки найти это в Google были сорваны теми, кто не мог придумать лучших прилагательных.





Возможно, вы захотите рассмотреть возможность использования ProcessTamer, который «автоматизирует» процесс понижения или обновления приоритета процесса в зависимости от ваших настроек.
Пользуюсь уже два года. Это очень просто, но действительно эффективно!
Если вы используете PowerShell, вы можете написать сценарий, который позволит вам изменить приоритет процесса. Я нашел следующую функцию PowerShell на Блог Monad:
function set-ProcessPriority {
param($processName = $(throw "Enter process name"), $priority = "Normal")
get-process -processname $processname | foreach { $_.PriorityClass = $priority }
write-host "`"$($processName)`"'s priority is set to `"$($priority)`""
}
В командной строке PowerShell вы должны сделать что-нибудь в строке:
set-ProcessPriority SomeProcessName "High"
Если вы хотите установить приоритет при запуске процесса, вы можете использовать встроенную команду НАЧНИТЕ:
START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B] [command/program] [parameters]
Используйте опции от низкого до нижнего нормального, чтобы установить приоритет запущенной команды / программы. Кажется, самое простое решение. Никаких загрузок или написания скриптов. Однако другие решения, вероятно, работают на уже запущенных процессах.
Однако это, похоже, полностью удаляет вашу историю команд (как при нажатии клавиш со стрелками, так и при нажатии F7).
Это все еще не дает ответа на вопрос, как изменить приоритет запущенных процессов - ответ от duane (через VBScript) в настоящее время является лучшим ответом на этот вопрос.
Если вы попытаетесь запустить что-то вроде start /low "C:\Program Files\myprog.exe" param1 param2, вы получите ошибку «Windows не может найти 'param1'». Решение состоит в том, чтобы заменить "C: \ Program Files \ ..." на c: \ program ~ 1 \ .. без кавычек (имя каталога DOS).
от 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";
}
Чтобы заставить
startвести себя еще больше, какnice, используйте параметры/WAITи/B, чтобы вывод терминала переходил в одно и то же окно.