Windows 等效于“ nice”

有没有一个 Windows 版本的 Unix 命令 不错

我特别要找的东西,我可以使用在命令行,和 没有的“设置优先级”菜单从任务管理器。

我试图在谷歌上找到它,但是被那些想不出更好的形容词的人阻挠了。

35078 次浏览

也许您想要考虑使用 ProcessTamer来“自动化”基于您的设置降级或升级过程优先级的过程。

我已经用了两年了。它很简单,但真的很有效!

如果使用 PowerShell,则可以编写一个脚本来更改进程的优先级。我在 Monad 博客上发现了以下 PowerShell 函数:

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]

使用从低到低于正常值的选项来设置启动的命令/程序的优先级。这似乎是最直接的解决办法了。没有下载或脚本编写。不过,其他解决方案可能适用于已经在运行的进程。

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";
}