Réponses:
La syntaxe de ligne de commande:
wmic process where name="AppName" CALL setpriority ProcessIDLevel
Exemple:
wmic process where name="calc.exe" CALL setpriority 32768
ou
wmic process where name="calc.exe" CALL setpriority "above normal"
Priorité:
wmic process where 'name="calc.exe"' CALL setpriority "idle"
Un petit ajout.
Vous pouvez également utiliser des valeurs de chaîne au lieu d’entiers (plus faciles à mémoriser) comme ceci:
wmic process where name="calc.exe" CALL setpriority "idle"
Valeurs possibles: "inactif", "faible", "inférieur à la normale", "normal", "supérieur à la normale", "priorité élevée", "temps réel"
PS N'oubliez pas les guillemets, surtout si vous utilisez plusieurs mots dans une valeur de chaîne
En ligne de commande batch, j'utiliserais simplement PowerShell. Cet exemple démarre avec calc.exe, trouve son processus et ajuste sa classe de priorité sur "IDLE", autrement dit LOW:
start /b /wait powershell.exe -command "calc.exe;$prog = Get-Process -Name calc;$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::IDLE"
Spécifiez l'une des valeurs d'énumération suivantes: "Normal, Idle, High, RealTime, BelowNormal, AboveNormal
"
Voici la même chose de PowerShell avec les lignes divisées:
calc.exe
$prog = Get-Process -Name calc
$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::IDLE
Outre les réponses existantes, la question Windows Equivalent de 'nice' répertorie d'autres solutions:
En outre, l'ancien SetPriority utilitaire peut encore fonctionner, mais je ne l'ai pas essayé depuis de nombreuses années.
Certaines de ces solutions peuvent ne pas fonctionner sur les services système ou doivent être exécutées en tant qu'administrateur .
J'utilise Windows 7 64 bits.
La commande wmic n'est pas fiable. Dans ma grande expérience, il échoue de manière inattendue pour de trop nombreuses raisons (pour la plupart inexplicables).
La meilleure commande possible, en raison de sa fiabilité, est la commande START. La syntaxe est très simple (il s'agit de la commande d'exécution à 3 lignes pour un fichier batch ):
:: Boost thread priority
SET command=<program.exe> <options>
start "" /REALTIME /B /W %command%
À mon avis, son degré élevé de fiabilité découle du fait qu’il définit le niveau de priorité avec lequel le programme .exe est lancé, plutôt que d’essayer de modifier la priorité une fois que le programme a commencé à s’exécuter avec une priorité différente.
wmic process where "CommandLine like '%calc%'" CALL setpriority "below normal"