ฉันต้องการเปลี่ยนลำดับความสำคัญของกระบวนการ Windows ผ่านทางบรรทัดคำสั่ง
ฉันจะทำสิ่งนั้นได้อย่างไร
ฉันต้องการเปลี่ยนลำดับความสำคัญของกระบวนการ Windows ผ่านทางบรรทัดคำสั่ง
ฉันจะทำสิ่งนั้นได้อย่างไร
คำตอบ:
ไวยากรณ์บรรทัดคำสั่ง:
wmic process where name="AppName" CALL setpriority ProcessIDLevel
ตัวอย่าง:
wmic process where name="calc.exe" CALL setpriority 32768
หรือ
wmic process where name="calc.exe" CALL setpriority "above normal"
ลำดับความสำคัญ:
wmic process where 'name="calc.exe"' CALL setpriority "idle"
นอกจากนี้ขนาดเล็ก
คุณยังสามารถใช้ค่าสตริงแทนจำนวนเต็ม (ง่ายต่อการจดจำ) เช่นนั้น:
wmic process where name="calc.exe" CALL setpriority "idle"
ค่าที่เป็นไปได้: "ไม่ได้ใช้งาน", "ต่ำ", "ต่ำกว่าปกติ", "ปกติ", "เหนือปกติ", "ลำดับความสำคัญสูง", "เรียลไทม์"
PS อย่าลืมเครื่องหมายคำพูดโดยเฉพาะถ้าใช้หลายคำในค่าสตริง
จากบรรทัดคำสั่งแบทช์ฉันก็แค่ใช้ PowerShell ตัวอย่างนี้เริ่ม calc.exe ค้นหากระบวนการและปรับระดับความสำคัญเป็น "IDLE" หรือที่รู้จักว่า LOW:
start /b /wait powershell.exe -command "calc.exe;$prog = Get-Process -Name calc;$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::IDLE"
ระบุหนึ่งในค่าการแจงนับต่อไปนี้: " Normal, Idle, High, RealTime, BelowNormal, AboveNormal
"
นี่คือสิ่งเดียวกันจาก PowerShell ด้วยเส้นแบ่ง:
calc.exe
$prog = Get-Process -Name calc
$prog.PriorityClass = [System.Diagnostics.ProcessPriorityClass]::IDLE
นอกเหนือจากคำตอบที่มีอยู่แล้วคำถามที่เทียบเท่ากับ Windows ของ 'nice' แสดงวิธีแก้ปัญหาเพิ่มเติม:
นอกจากนี้ยูทิลิตี้SetPriority แบบเก่าอาจยังใช้งานได้ แต่ฉันไม่ได้ลองมาหลายปีแล้ว
บางส่วนของการแก้ปัญหาเหล่านี้อาจไม่ทำงานในการให้บริการของระบบหรืออาจต้องมีการเรียกใช้ในฐานะผู้ดูแลระบบ
ฉันใช้ Windows 7 64 บิต
wmicคำสั่งไม่น่าเชื่อถือ จากประสบการณ์ที่ผ่านมาของฉันมันล้มเหลวอย่างกะทันหันด้วยเหตุผลมากมาย
คำสั่งที่ดีที่สุดที่เป็นไปได้เนื่องจากความน่าเชื่อถือของมันคือคำสั่ง START ไวยากรณ์ง่ายมาก (นี่คือคำสั่งเรียกใช้ 3 บรรทัดสำหรับไฟล์แบตช์ ):
:: Boost thread priority
SET command=<program.exe> <options>
start "" /REALTIME /B /W %command%
ในความคิดของฉันความน่าเชื่อถือในระดับสูงนั้นเกิดจากการที่มันตั้งค่าระดับความสำคัญที่โปรแกรม. exe เปิดตัวแทนที่จะพยายามเข้าไปยุ่งกับลำดับความสำคัญหลังจากโปรแกรมเริ่มทำงานด้วยลำดับความสำคัญที่แตกต่างกัน
wmic process where "CommandLine like '%calc%'" CALL setpriority "below normal"