मैं पृष्ठभूमि में एक विंडोज कमांड लाइन कैसे निष्पादित कर सकता हूं?


157

मैं सक्रिय उपयोगकर्ता के साथ बातचीत किए बिना, पृष्ठभूमि में एक विंडोज़ कमांड लाइन कैसे निष्पादित कर सकता हूं?


1
क्या आप निर्दिष्ट कर सकते हैं कि आप क्या करना चाहते हैं? क्या आप बैकग्राउंड में कमांड लाइन पर कमांड करना चाहते हैं या क्या आप बैकग्राउंड में पूरी कमांड लाइन परफॉर्म करना चाहते हैं, इसलिए यह डेस्कटॉप से ​​अनवील है?
सर्वग्राही

मुझे बैकग्राउंड में कमांड लाइन पर दो बेंत की ज़रूरत है या क्या आप बैकग्राउंड में पूरी कमांड लाइन परफॉर्म करना चाहते हैं
मोहम्मद अल-रावदेव

जवाबों:


36

आपका प्रश्न बहुत अस्पष्ट है, लेकिन सर्वरफॉल्ट पर एक पोस्ट है जिसमें आपको आवश्यक जानकारी हो सकती है। वहाँ जवाब में बताया गया है कि एक बैच फ़ाइल विंडो को कैसे चलाना है:

आप इसके बजाय Windows स्क्रिप्ट फ़ाइल का उपयोग करके चुपचाप चला सकते हैं। रन विधि आपको अदृश्य मोड में स्क्रिप्ट चलाने की अनुमति देती है। .vbs इस तरह एक फ़ाइल बनाएँ

Dim WinScriptHost
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\Scheduled Jobs\mybat.bat" & Chr(34), 0
Set WinScriptHost = Nothing

और इसे शेड्यूल करें। इस उदाहरण में दूसरा तर्क विंडो शैली सेट करता है। 0 का अर्थ है "खिड़की छिपाएं।"


यह पूर्ण है। Logitech के लिए सेटपॉइंट, कभी नहीं, विंडोज़ के साथ शुरू होता है। मैं इसे अब लगभग 3 वर्षों से मैन्युअल रूप से शुरू कर रहा हूं। क्या फर्क पड़ता है कि बैच कहां है? मैंने देखा है कि कुछ लोग इस प्रकार की बैच फ़ाइल को C या रूट में डालते हैं।
ejbytes

235

यह थोड़ी देर है, लेकिन मैं खुद इस सवाल का जवाब खोजते हुए भाग गया और मुझे यह पता चला:

START /B program

जो, विंडोज पर, लिनक्स कमांड के सबसे नजदीक है:

program &

कंसोल की मदद से सिस्टम:

C:\>HELP START

Starts a separate window to run a specified program or command.

START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
      [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
      [/NODE <NUMA node>] [/AFFINITY <hex affinity mask>] [/WAIT] [/B]
      [command/program] [parameters]

    "title"     Title to display in window title bar.
    path        Starting directory.
    B           Start application without creating a new window. The
                application has ^C handling ignored. Unless the application
                enables ^C processing, ^Break is the only way to interrupt
                the application.

एक समस्या जो मैंने इसके साथ देखी वह यह है कि आपके पास कंसोल विंडो पर लिखने का एक से अधिक प्रोग्राम है, यह थोड़ा भ्रमित और गड़बड़ हो जाता है।

इसे उपयोगकर्ता के साथ इंटरैक्ट नहीं करने के लिए, आप आउटपुट को किसी फ़ाइल में रीडायरेक्ट कर सकते हैं:

START /B program > somefile.txt

2
मुझे यह उत्तर सबसे अच्छा लगता है क्योंकि यह
बुद्धिमानी

3
यह मेरे लिए काम नहीं करता है, यह केवल एक नया cmd उदाहरण बनाने के लिए लगता है [?] हालांकि अगर मैं इसे चलाता हूं start /B "" programतो यह काम किया ...
rogerdpack

1
@rogerdpack यह सही है। विंडोज 7 के साथ किसी कारण के लिए, यह कमांड प्रारूप है। "" अनिवार्य शीर्षक पैरामीटर है।
23

9
दुर्भाग्य से, अगर मैं शेल विंडो से बाहर निकलता हूं जिसमें मैंने प्रक्रिया को जन्म दिया है, तो ऐसा लगता है कि प्रक्रिया भी समाप्त हो गई है।
२१:३६

2
@Qwerty: SetConsoleCtrlHandler के लिए MSDN को देखें
Zan Lynx

68

मुझे संदेह है कि आपका मतलब है: पृष्ठभूमि में कुछ चलाएं और लॉन्च किए गए प्रोग्राम को जारी रखने के साथ कमांड लाइन को तुरंत वापस लें।

START "" program

जो यूनिक्स के बराबर है

program &

7
एफजी समकक्ष क्या है? क्या हम कमांड प्रॉम्प्ट को बंद कर सकते हैं और पोरग्राम अभी भी चलेगा?
नेनोटलेप

1
इसके अलावा, मैं कमांड प्रॉम्प्ट में एक कार्यक्रम चलाना चाहता हूं और समय-समय पर इसे वापस करना चाहता हूं, जैसे कि स्क्रीन में - क्या इसके साथ ऐसा करने योग्य है? मुझे कमांड प्रॉम्प्ट को बंद करने में सक्षम होना चाहिए, लेकिन रनिंग प्रोग्राम को उपयोगी बनाए रखना चाहिए।
Nenotlep

4
उस के खाली पैरामीटर क्या है start? यह इसके बिना काम नहीं करता है (सिर्फ एक नया कमांड उदाहरण निष्पादित करता है), लेकिन startइसके बारे में कुछ भी कहने में मदद नहीं करता है, यह बताता है कि सभी पैरामीटर वैकल्पिक हैं (या मुझे यह समझ में नहीं आता है)।
दाविद फेरेन्स्की रोगोजान

@DawidFerenczy startमेरे लिए खाली पैरामीटर के बिना काम करता है, लेकिन मुझे लगता है कि जब मैं खाली पैरामीटर का उपयोग नहीं करता हूं तो एक अलग कॉन्फ़िगरेशन के साथ एक गोले मिलते हैं, एक सेटिंग के रूप में मैंने किया था जब मेरे पास खाली पैरामीटर का उपयोग नहीं किया जाता है जब मैं उपयोग नहीं करता हूं खाली पैरामीटर। मुझे आश्चर्य है कि वे अलग-अलग कॉन्फ़िगरेशन का उपयोग क्यों करते हैं?
हेलगुडेबी

@Paul START "" programमेरे लिए एक नए टर्मिनल में एक कमांड शुरू करता है, जबकि program &यूनिक्स में कमांड चलाता है और आउटपुट को उसी टर्मिनल पर प्रिंट करता है।
हैलोगूडीबाई


6

आप इसका उपयोग कर सकते हैं (टिप्पणी!) PowerShell स्क्रिप्ट:

# Create the .NET objects
$psi = New-Object System.Diagnostics.ProcessStartInfo
$newproc = New-Object System.Diagnostics.Process
# Basic stuff, process name and arguments
$psi.FileName = $args[0]
$psi.Arguments = $args[1]
# Hide any window it might try to create
$psi.CreateNoWindow = $true
$psi.WindowStyle = 'Hidden'
# Set up and start the process
$newproc.StartInfo = $psi
$newproc.Start()
# Return the process object to the caller
$newproc

इसे एक .ps1फ़ाइल के रूप में सहेजें । स्क्रिप्ट निष्पादन को सक्षम करने के बाद ( PowerShell टैग विकी में स्क्रिप्ट्स को सक्षम करना देखें ), आप इसे एक या दो तार पास कर सकते हैं: निष्पादन योग्य का नाम और वैकल्पिक रूप से तर्क लाइन। उदाहरण के लिए:

.\hideproc.ps1 'sc' 'stop SomeService'

मैं पुष्टि करता हूं कि यह विंडोज 10 पर काम करता है।


4
हां शुरू / बी अब काम नहीं करता है।
सजुक

2

यह है कि मेरा PHP आंतरिक सर्वर पृष्ठभूमि में कैसे जाता है। इसलिए तकनीकी रूप से इसे सभी के लिए काम करना चाहिए।

start /B "" php -S 0.0.0.0:8000 &

धन्यवाद


1

यदि आप चाहते हैं कि कमांड-लाइन प्रोग्राम उपयोगकर्ता के बिना भी इसके बारे में जाने के बिना चलाए, तो इसे विंडोज सेवा के रूप में परिभाषित करें और यह एक समय पर चलेगा।


4
आप कैसे करते हो?
बार्लॉप

वैकल्पिक रूप से आप इसे एक निर्धारित कार्य कर सकते हैं - नियंत्रण कक्ष-> प्रशासनिक उपकरण-> अनुसूचित कार्य या schtasksविंडोज़ एक्सपी और इसके बाद के संस्करण में कमांड का उपयोग करें (चेतावनी: schtasksजटिल है)।
लॉरेंस सी सी

0

2 उदाहरणों के साथ एक संबंधित जवाब:

  1. नीचे खुलता है calc.exe:

कॉल START / B "मेरा कैल्क" "calc.exe"

  1. कभी-कभी अग्रभूमि वांछनीय नहीं है, तो आप नीचे के रूप में न्यूनतम चलाते हैं:

START / MIN को "मेरा मोंगॉड" कहें "% ProgramFiles% \ MongoDB \ Server \ 3.4 \ bin \ modod.exe"


यह इसे कम से कम चलाने के लिए प्रतीत नहीं होता है:call Start /MIN "c" "calc.exe"
मूंड्रा

1
फोन शुरू / मिनट "n" "notepad.exe": सही है, यह नोटपैड के लिए काम करता है
मनोहर रेड्डी Poreddy

तो यह विंडो एप्लिकेशन के लिए काम करता है लेकिन कंसोल एप्लिकेशन के लिए नहीं। आंकड़े, एक के माध्यम से (सहित ) SW_*को पारित कर सकते हैं । CreateProcessWSTARTUPINFO::wShowWindowSW_HIDE
0xC0000022L

"स्टार्ट" या अन्य टूल जैसे ऊपर एक पूर्ण कमांड क्या है? क्या हमें एक और कार्यक्रम लिखने की आवश्यकता है?
मनोहर रेड्डी पोरडे

-1

आप इस लिंक में ऐसा करने का सही तरीका देख सकते हैं:

कमांड विंडो के बिना एक अनुसूचित कार्य को चलाने के लिए

संक्षेप में, आपको 'भागो चाहे उपयोगकर्ता लॉग ऑन हो या नहीं' के लिए चेकबॉक्स है। टास्क यूजर क्रेडेंशियल्स को 'ओके' दबाने के बाद दर्ज किया जाना चाहिए।


-2

बस इस थ्रेड विंडो 7 के पार आया, पावर शेल का उपयोग करके, पृष्ठभूमि में निष्पादन योग्य चलाता है, ठीक उसी तरह जैसे कि यूनिक्स फ़ाइल नाम और

उदाहरण: शुरू -NoNewWindow फ़ाइल नाम

मदद शुरू करें

NAME प्रारंभ-प्रक्रिया

SYNTAX स्टार्ट-प्रोसेस [-FilePath] [[-ArgumentList]] [-Credential] [-वार्किंगडायरेक्टरी] [-LadUserProfile] [-NoNewWebow] [-PassThru] [-RedirectStandardError] [-RirectirectStandard_putproput-put-project] [-WindowStyle {सामान्य | छिपा हुआ | कम से कम | मैक्सिमाइज़}] [-UseNewEnvironment] []

Start-Process [-FilePath] <string> [[-ArgumentList] <string[]>] [-WorkingDirectory <string>] [-PassThru] [-Verb
<string>] [-Wait] [-WindowStyle <ProcessWindowStyle> {Normal | Hidden | Minimized | Maximized}]
[<CommonParameters>]

ALIASES की शुरुआत होती है

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