Respuestas:
La sintaxis de la línea de comando:
wmic process where name="AppName" CALL setpriority ProcessIDLevel
Ejemplo:
wmic process where name="calc.exe" CALL setpriority 32768
o
wmic process where name="calc.exe" CALL setpriority "above normal"
Prioridad:
wmic process where 'name="calc.exe"' CALL setpriority "idle"
Una pequeña adición.
También puede usar valores de cadena en lugar de enteros (más fáciles de memorizar) así:
wmic process where name="calc.exe" CALL setpriority "idle"
Valores posibles: "inactivo", "bajo", "por debajo de lo normal", "normal", "por encima de lo normal", "alta prioridad", "en tiempo real"
PD. No olvide las comillas, especialmente si usa varias palabras en un valor de cadena
Desde la línea de comandos por lotes, simplemente usaría PowerShell. Este ejemplo inicia calc.exe, encuentra su proceso y ajusta su clase de prioridad a "IDLE", también conocido como BAJO:
start /b /wait powershell.exe -command "calc.exe;$prog = Get-Process -Name calc;$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::IDLE"
Especifique uno de los siguientes valores de enumeración: " Normal, Idle, High, RealTime, BelowNormal, AboveNormal
"
Aquí está lo mismo de PowerShell con líneas divididas:
calc.exe
$prog = Get-Process -Name calc
$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::IDLE
Además de las respuestas existentes, la pregunta Equivalente de Windows de 'agradable' enumera algunas soluciones más:
Además, la antigua utilidad SetPriority aún podría funcionar, pero no la he probado en muchos años.
Es posible que algunas de estas soluciones no funcionen en los servicios del sistema o que necesiten ejecutarse como administrador .
Estoy ejecutando Windows 7 de 64 bits.
El comando wmic no es confiable. En mi considerable experiencia, falla inesperadamente por muchas razones (en su mayoría inexplicables).
El mejor comando posible, debido a su confiabilidad, es el comando START. La sintaxis es muy simple (este es el comando de ejecución de 3 líneas para un archivo por lotes ):
:: Boost thread priority
SET command=<program.exe> <options>
start "" /REALTIME /B /W %command%
En mi opinión, su alto grado de confiabilidad se debe al hecho de que establece el nivel de prioridad con el que se inicia el programa .exe, en lugar de tratar de entrometerse con prioridad después de que el programa ha comenzado a ejecutarse con una prioridad diferente.
wmic process where "CommandLine like '%calc%'" CALL setpriority "below normal"