कमांड लाइन के माध्यम से विंडोज प्रक्रिया की प्राथमिकता बदलना


42

मैं कमांड लाइन के माध्यम से विंडोज प्रक्रिया प्राथमिकता को बदलना चाहता हूं।

मैं उसे कैसे कर सकता हूँ?

जवाबों:


55

कमांड लाइन सिंटैक्स:

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"

प्राथमिकता:

  • निष्क्रिय: 64 (या "बेकार")
  • नीचे सामान्य: 16384 (या "सामान्य से नीचे")
  • सामान्य: 32 (या "सामान्य")
  • सामान्य से ऊपर: 32768 (या "सामान्य से ऊपर")
  • उच्च प्राथमिकता: 128 (या "उच्च प्राथमिकता")
  • वास्तविक समय: 256 (या "रियलटाइम")


प्रक्रिया एक्सप्लोरर में पृष्ठभूमि (निम्न IO और मेमोरी प्राथमिकता) के लिए भी ऐसा करना संभव है?
मिकी

बैच से "cmd.exe" पर भी यह काम करेगा? ... बैच कि cmd.exe शुरू होगा?
गेमर0

नोट: उद्धरणों का पहला सेट अनिवार्य है, इसलिए अन्य गोले में उद्धरण (या दोहरे-उद्धरण) से बच जाना चाहिए। wmic process where 'name="calc.exe"' CALL setpriority "idle"
साइगविन में

2
सामान्य मूल्य से नीचे / ऊपर इतना बड़ा और अजीब क्यों है? और सामान्य क्यों दोनों निष्क्रिय और realtime से कम है?
फुल्विक

11

एक छोटा सा जोड़।

आप पूर्णांक के बजाय स्ट्रिंग मान का उपयोग कर सकते हैं (जैसे याद रखना आसान):

 wmic process where name="calc.exe" CALL setpriority "idle"

संभावित मान: "निष्क्रिय", "निम्न", "सामान्य से नीचे", "सामान्य", "सामान्य से ऊपर", "उच्च प्राथमिकता", "वास्तविक समय"।

पुनश्च। उद्धरणों को मत भूलना, खासकर अगर एक स्ट्रिंग मूल्य में कई शब्दों का उपयोग करते हुए


उद्धरणों का पहला सेट अनिवार्य है, भले ही कई शब्दों का उपयोग न करें। शेल द्वारा व्याख्या किए जाने के बजाय इसे कमांड को भी पारित किया जाना चाहिए।
piojo

Win10 प्रो 1809 पर, "कम" एक मान्यता प्राप्त मूल्य नहीं है - यह एक त्रुटि फेंकता है। "आइडल" का उपयोग करने से प्रक्रिया को कार्य प्रबंधक में "निम्न" प्राथमिकता के रूप में प्रदर्शित किया जा सकता है ...
ljwobker

5

बैच कमांड लाइन से मैं बस पॉवरशेल का उपयोग करूंगा। यह उदाहरण calc.exe शुरू करता है, अपनी प्रक्रिया को पाता है और अपनी प्राथमिकता वर्ग को "IDLE", उर्फ ​​कम समायोजित करता है:

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

जो पहले कहा गया था उसे दोहराने की क्या बात है?
harrymc

@harrymc यह PowerShell का उपयोग करते हुए मूल प्रश्न का उत्तर देता है।
17

@harrymc - वास्तव में मैं वही कह रहा हूं जो मैंने DEC से कहा था। stackoverflow.com/questions/20693028/…
नॉक-ड्रेगर

कोई बात नहीं। बस मैं कुछ इसी तरह से जुड़ा हुआ।
हरिके।

5

मौजूदा उत्तरों के अलावा, 'अच्छा' का प्रश्न विंडोज समतुल्य कुछ और समाधानों को सूचीबद्ध करता है:

  1. कमांड-प्रॉम्प्ट (CMD) में कमांड START का उपयोग करना ।
  2. निशुल्क ProcessTamer का उपयोग करते हुए। Ex पर एक नियम स्थापित करना जो उस प्रक्रिया को शुरू करने पर स्वचालित रूप से लागू होता है।
  3. यहां पॉवरशेल स्क्रिप्ट का उपयोग करना ।
  4. यहां मौजूद VBScript स्क्रिप्ट का उपयोग करना ।

इसके अतिरिक्त, पुराना सेटपैरिटी यूटिलिटी अभी भी काम कर सकता है, लेकिन मैंने इसे कई सालों तक आजमाया नहीं है।

इनमें से कुछ समाधान सिस्टम सेवाओं पर काम नहीं कर सकते हैं या उन्हें प्रशासक के रूप में चलाने की आवश्यकता हो सकती है ।


VbScript समाधान के साथ स्पष्ट रोड़ा यह है कि यह अपने कार्य को पूरा करने के लिए कोड की 23 लाइनें लेता है (यानी प्राथमिकता स्तर निर्धारित करता है), जहां START कमांड ऐसा करने के लिए केवल 2 लाइनें लेता है (एक चुटकी पर, इसलिए यह भी काम करता है एक नंगे कमांड प्रॉम्प्ट): "" / realtime / b / w program.exe शुरू करें
Ed999

1

मैं विंडोज 7 64-बिट चला रहा हूं।

Wmic आदेश है नहीं विश्वसनीय। मेरे अनुभव में, यह अप्रत्याशित रूप से बहुत अधिक (ज्यादातर अकथनीय) कारणों के लिए विफल रहता है।

इसकी विश्वसनीयता के कारण सबसे अच्छा संभव कमांड, START कमांड है। सिंटैक्स बहुत सरल है (यह एक बैच फ़ाइल के लिए 3-लाइन रन कमांड है ):

::  Boost thread priority
SET command=<program.exe> <options>
start "" /REALTIME /B /W  %command%

मेरी राय में इसकी उच्च स्तर की विश्वसनीयता इस तथ्य से उपजी है कि यह प्राथमिकता स्तर को निर्धारित करता है जिसके साथ .exe कार्यक्रम लॉन्च किया गया है, बजाय प्राथमिकता के साथ कार्यक्रम को अलग प्राथमिकता के साथ चलाने के बाद शुरू करने की कोशिश कर रहा है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.