Pregunta

¿Existe un equivalente en Windows del comando Unix? lindo?

Estoy buscando específicamente algo que pueda usar en la línea de comando y no el menú "Establecer prioridad" del administrador de tareas.

Mis intentos de encontrar esto en Google se han visto frustrados por aquellos que no pueden encontrar mejores adjetivos.

¿Fue útil?

Solución

Si desea establecer una prioridad al iniciar un proceso, puede utilizar el comando de inicio incorporado:

START ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/WAIT] [/B] [command/program] [parameters]

Utilice las opciones desde bajo hasta debajo de lo normal para establecer la prioridad del comando/programa iniciado.Parece la solución más sencilla.Sin descargas ni escritura de guiones.Sin embargo, las otras soluciones probablemente funcionen en procesos que ya se están ejecutando.

Otros consejos

Si utiliza Potencia Shell, podrías escribir un script que te permita cambiar la prioridad de un proceso.Encontré la siguiente función de PowerShell en el blog de mónada:

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)`""
}

Desde el indicador de PowerShell, haría algo en la línea:

set-ProcessPriority SomeProcessName "High"

Tal vez quieras considerar usar Domador de procesos que "automatizan" el proceso de degradación o actualización de la prioridad del proceso según su configuración.

Lo he estado usando durante dos años.¡Es muy simple pero realmente efectivo!

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

PrcView también parece funcionar desde la línea de comando:

http://www.teamcti.com/pview/prcview.htm

(Compruebe el parámetro -ph)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top