Antworten:
Die Befehlszeilensyntax:
wmic process where name="AppName" CALL setpriority ProcessIDLevel
Beispiel:
wmic process where name="calc.exe" CALL setpriority 32768
oder
wmic process where name="calc.exe" CALL setpriority "above normal"
Priorität:
wmic process where 'name="calc.exe"' CALL setpriority "idle"
Eine kleine Ergänzung.
Sie können auch Zeichenfolgenwerte anstelle von Ganzzahlen verwenden (einfacher zu merken):
wmic process where name="calc.exe" CALL setpriority "idle"
Mögliche Werte: "Leerlauf", "Niedrig", "Unter Normal", "Normal", "Über Normal", "Hohe Priorität", "Echtzeit"
PS. Vergessen Sie die Anführungszeichen nicht, insbesondere wenn Sie mehrere Wörter in einem Zeichenfolgenwert verwenden
Über die Batch-Befehlszeile würde ich einfach PowerShell verwenden. In diesem Beispiel wird calc.exe gestartet, der Prozess gefunden und die Prioritätsklasse auf "IDLE" (auch bekannt als LOW) eingestellt:
start /b /wait powershell.exe -command "calc.exe;$prog = Get-Process -Name calc;$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::IDLE"
Geben Sie einen der folgenden Aufzählungswerte an: " Normal, Idle, High, RealTime, BelowNormal, AboveNormal
"
Hier ist dasselbe von PowerShell mit geteilten Linien:
calc.exe
$prog = Get-Process -Name calc
$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::IDLE
Zusätzlich zu den vorhandenen Antworten werden in der Frage Windows Equivalent of 'nice' einige weitere Lösungen aufgeführt:
Außerdem funktioniert das alte SetPriority- Dienstprogramm möglicherweise noch, aber ich habe es seit vielen Jahren nicht mehr ausprobiert.
Einige dieser Lösungen funktionieren möglicherweise nicht auf Systemdiensten oder müssen möglicherweise als Administrator ausgeführt werden .
Ich verwende Windows 7 64-Bit.
Der Befehl wmic ist nicht zuverlässig. Nach meiner Erfahrung scheitert es unerwartet aus zu vielen (meist unerklärlichen) Gründen.
Der aufgrund seiner Zuverlässigkeit bestmögliche Befehl ist der Befehl START. Die Syntax ist sehr einfach (dies ist der dreizeilige Ausführungsbefehl für eine Batchdatei ):
:: Boost thread priority
SET command=<program.exe> <options>
start "" /REALTIME /B /W %command%
Meiner Meinung nach beruht das hohe Maß an Zuverlässigkeit darauf, dass die Prioritätsstufe festgelegt wird, mit der das EXE-Programm gestartet wird, anstatt zu versuchen, sich vorrangig einzumischen, nachdem das Programm mit einer anderen Priorität gestartet wurde .
wmic process where "CommandLine like '%calc%'" CALL setpriority "below normal"