Risposte:
La sintassi della riga di comando:
wmic process where name="AppName" CALL setpriority ProcessIDLevel
Esempio:
wmic process where name="calc.exe" CALL setpriority 32768
o
wmic process where name="calc.exe" CALL setpriority "above normal"
Priorità:
wmic process where 'name="calc.exe"' CALL setpriority "idle"
Una piccola aggiunta.
Puoi anche usare valori stringa invece di numeri interi (più facili da memorizzare) in questo modo:
wmic process where name="calc.exe" CALL setpriority "idle"
Valori possibili: "inattivo", "basso", "sotto normale", "normale", "sopra normale", "alta priorità", "tempo reale"
PS. Non dimenticare le virgolette, soprattutto se si utilizzano più parole in un valore di stringa
Dalla riga di comando batch utilizzerei semplicemente PowerShell. Questo esempio avvia calc.exe, trova il suo processo e regola la sua classe di priorità su "IDLE", ovvero LOW:
start /b /wait powershell.exe -command "calc.exe;$prog = Get-Process -Name calc;$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::IDLE"
Specificare uno dei seguenti valori di enumerazione: " Normal, Idle, High, RealTime, BelowNormal, AboveNormal
"
Ecco la stessa cosa di PowerShell con linee di divisione:
calc.exe
$prog = Get-Process -Name calc
$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::IDLE
Oltre alle risposte esistenti, la domanda equivalente a Windows di "bello" elenca alcune altre soluzioni:
Inoltre, la vecchia utility SetPriority potrebbe ancora funzionare, ma non ci provo da molti anni.
Alcune di queste soluzioni potrebbero non funzionare sui servizi di sistema o potrebbe essere necessario eseguirle come amministratore .
Sto eseguendo Windows 7 a 64 bit.
Il comando wmic non è affidabile. Nella mia considerevole esperienza, fallisce inaspettatamente per troppi motivi (per lo più inspiegabili).
Il miglior comando possibile, per la sua affidabilità, è il comando START. La sintassi è molto semplice (questo è il comando di esecuzione a 3 righe per un file batch ):
:: Boost thread priority
SET command=<program.exe> <options>
start "" /REALTIME /B /W %command%
A mio avviso, il suo alto grado di affidabilità deriva dal fatto che imposta il livello di priorità con cui viene avviato il programma .exe, piuttosto che cercare di immischiarlo con priorità dopo che il programma ha iniziato a funzionare con una priorità diversa.
wmic process where "CommandLine like '%calc%'" CALL setpriority "below normal"