सवाल "कमांड विंडो" लॉन्च किए बिना बैच फ़ाइल कैसे चलाएं? [डुप्लिकेट]


इस प्रश्न का उत्तर यहां दिया गया है:

विंडोज एक्सपी पर, क्या मैं एक "ब्लैक विंडो" के बिना शॉर्टकट के माध्यम से बैच (.bat या .cmd) फ़ाइल चला सकता हूं?


122
2018-05-11 17:31


मूल


क्या आप पूछ रहे हैं कि क्या आप बैट फ़ाइल चलाने पर कमांड विंडो को दिखने से रोक सकते हैं? - Eric
हां, आप cmd.exe शॉर्टकट पर गुणों का उपयोग कर आउटपुट विंडो के डिफ़ॉल्ट रंग को आसानी से बदल सकते हैं। (हाँ यह एक मजाक है ...) - Toby J


जवाब:


उदाहरण के लिए, wscript के रूप में निम्न को सहेजें, hidecmd.vbs को अपने बैच फ़ाइल के नाम से "test.bat" को बदलने के बाद।

Set oShell = CreateObject ("Wscript.Shell") 
Dim strArgs
strArgs = "cmd /c testing.bat"
oShell.Run strArgs, 0, false

का दूसरा पैरामीटर oShell.Run है intWindowStyle कार्यक्रम की खिड़की की उपस्थिति का संकेत देने वाला मूल्य और शून्य मान छुपा खिड़की के लिए है।

संदर्भ यहाँ है http://msdn.microsoft.com/en-us/library/d5fk67ky.aspx 


83
2018-05-11 19:55



क्या तीसरी पंक्ति होगी: strArgs = "cmd / c FILEPATH \ test.bat"? - Dan Z
अभी भी अदृश्य रहने के दौरान ऊंचा मोड में बल्ले को चलाने का कोई तरीका? - Laurens Swart
कैसे चलाएं .bat इस विधि का उपयोग कर प्रशासक के रूप में फ़ाइल? - Mehdi Dehghani


यह शाजी के जवाब का सिर्फ एक सरलीकरण है। आप अपनी बैच स्क्रिप्ट को ए के माध्यम से चला सकते हैं VBScript (.vbs) इस तरह की स्क्रिप्ट:

'HideBat.vbs
CreateObject("Wscript.Shell").Run "your_batch_file.bat", 0, True

यह आपकी बैच फ़ाइल निष्पादित करेगा जिसमें कोई कमांड विंडो दिखाई नहीं देगी।


41
2018-02-15 09:52



कैसे चलाएं .bat इस विधि का उपयोग कर व्यवस्थापक के रूप में फ़ाइल? - Mehdi Dehghani


बस "विंडोज स्क्रिप्टिंग का उपयोग करें" उत्तरों (जिसे मैं सबसे अच्छा मानता हूं क्योंकि यह पहले से ही अंतर्निहित है) पर विस्तार करने के लिए यहां एक रैपर स्क्रिप्ट का उपयोग करके इसे "वास्तविक" बैच फ़ाइल का नाम पैरामीटर के रूप में पास करने का तरीका बताया गया है। अतिरिक्त पैरामीटर बैच फ़ाइल पर पास किए जाएंगे।

If WScript.Arguments.Count >= 1 Then
    ReDim arr(WScript.Arguments.Count-1)
    For i = 0 To WScript.Arguments.Count-1
        Arg = WScript.Arguments(i)
        If InStr(Arg, " ") > 0 Then Arg = """" & Arg & """"
      arr(i) = Arg
    Next

    RunCmd = Join(arr)
    CreateObject("Wscript.Shell").Run RunCmd, 0, True
End If

तो उदा। उपरोक्त फ़ाइल को इस रूप में सहेजें NoShell.vbs कहीं और कॉल करें:

NoShell.vbs c:\foo\my_batch_file.bat

अंत में, यदि आप इसे कहीं से चलाने के लिए देख रहे हैं जो .vbs फ़ाइल (जैसे विजुअल स्टूडियो में "बाहरी उपकरण") को समझ में नहीं आता है, तो आप कॉल करना चाहेंगे C:\Windows\System32\wscript.exe vbs फ़ाइल के साथ इसके पहले पैरामीटर और आपकी बैच फ़ाइल दूसरे के रूप में।


19
2018-01-10 17:50



उन लोगों के लिए जो प्रत्येक नई बल्ले फ़ाइल के लिए एक नई vbs फ़ाइल बनाने के विचार और अवधारणा को नापसंद करते हैं, क्योंकि किसी को शीर्ष दो उत्तरों में से किसी एक का उपयोग करना चाहिए, यह एक आदर्श समाधान है। एकाधिक vbs फ़ाइलों के बजाय, आपके पास एकाधिक शॉर्टकट होंगे। प्रत्येक नई बल्ले फ़ाइल के लिए, vbs फ़ाइल का शॉर्टकट बनाएं, राइट क्लिक करें, गुण> शॉर्टकट टैब चुनें, और लक्ष्य बॉक्स में बैट फ़ाइल का पथ पहले से मौजूद पथ के बाद दर्ज करें, जैसा ऊपर दिखाया गया है या जैसा यह अगर शॉर्टकट vbs फ़ाइल के समान स्थान पर नहीं है: "C:\My Files\HideCmd.vbs" c:\foo\my_batch_file.bat। - Rolo
यदि बल्ले फ़ाइल के फ़ाइल पथ में एक स्थान है, तो इसे vbs फ़ाइल में शॉर्टकट के माध्यम से कैसे कहा जा सकता है? उदाहरण के लिए: "C:\My Files\HideCmd.vbs" c:\my things\my_batch_file.bat। इससे कोई फर्क नहीं पड़ता कि मैं पथ के लिए क्या प्रयास करता हूं - इसके चारों ओर दोहरे उद्धरण, अंतरिक्ष के स्थान पर% 20, या उन दोनों का संयोजन, कुछ भी काम नहीं करता है। मुझे एक त्रुटि संदेश मिलता है जो मुझे बता रहा है कि फ़ाइल नहीं मिल सकती है या कुछ भी नहीं होता है। क्या यह मेरे अंत में उपयोगकर्ता त्रुटि के कारण है, शॉर्टकट के लिए लक्ष्य फ़ील्ड के साथ एक विंडोज़ सीमा, या vbs स्क्रिप्ट के साथ एक समस्या जिसमें यह रिक्त स्थान के साथ फ़ाइल पथ को सही तरीके से संभाल नहीं करता है? - Rolo
@Rolo मैंने स्क्रिप्ट को अपडेट किया है ताकि यदि किसी भी आने वाले पैरामीटर में रिक्त स्थान हों, तो यह उन्हें उद्धरण के साथ घेरेगा। तो आप इसे कॉल करते समय उद्धरण के साथ बैच फ़ाइल को पथ लपेटना चाहेंगे, फिर इसे एक तर्क माना जाएगा और बुलाए जाने से पहले पुनः लपेटा जाएगा। - Toby J


आप कम से कम चलाने के लिए शॉर्टकट के गुणों को बदल सकते हैं।

इसे पूरी तरह से अदृश्य तरीके से चलाने के लिए आपको विंडोज स्क्रिप्टिंग जैसे कुछ और चाहिए।


9
2018-05-11 19:50



आपका पहला सुझाव यह है कि मैंने हमेशा ऐसा किया है। - martineau


उपयोग शुरु '/ बी' विकल्प के साथ। उदाहरण के लिए:

@echo off
start /B go.bat

8
2018-05-11 17:36



start /bएक नया प्रोग्राम बनाने के बजाए वर्तमान में आवंटित कंसोल में प्रोग्राम चलाएगा। बैच को cmd के साथ चलने के बाद भी आपको एक नया मिल जाएगा (जो बदले में [आश्चर्य], एक कंसोल खोलता है)। - Joey
@ जॉय हां, लेकिन यह शैल निष्पादन के माध्यम से अन्य अनुप्रयोगों से बैच फ़ाइलों को लॉन्च करने के लिए बहुत उपयोगी है (जैसे SYSTEM सी / सी ++ में)। - Tomáš Zato
@ टॉमसज़ेटो: आप सीधे उस मामले में बैच फ़ाइल को कॉल कर सकते हैं, या, यदि आप किसी भी प्रक्रिया को बढ़ाने के लिए उपयोग करते हैं तो पहले एक खोल नहीं बनाते हैं, उपयोग करें cmd /c foo.cmd। उपयोग करने की बिल्कुल आवश्यकता नहीं है start उन परिदृश्यों में, और, मैं उस पर बहस करता हूं system के पक्ष में इस्तेमाल नहीं किया जाना चाहिए CreateProcess। बैच फ़ाइल लॉन्च करके, आप पहले से ही एक मंच पर निर्भर हैं, आप नौकरी के लिए बेहतर टूल का भी उपयोग कर सकते हैं। - Joey
@ जॉय धन्यवाद एक गुच्छा, कभी नहीं सुना cmd /c पहले। Cmd कमांड मुझे अपने मामले में जरूरी है, लेकिन अब तक मिले सभी स्टैकएक्सचेंज उत्तरों, एक बैच फ़ाइल के बारे में एक बैच फ़ाइल चलाने के बारे में, प्रारंभिक उपयोग शुरू करने के लिए शीर्ष जवाब हैं ... - T_D
start /b go.bat  नहीं होगा एक नया कंसोल आवंटित करें (यानी conhost.exe का एक उदाहरण - या विंडोज 7 से पहले csrss.exe में एक थ्रेड)। हालांकि यह एक गड़बड़ कर देगा क्योंकि बैच स्क्रिप्ट cmd.exe के एक नए उदाहरण के साथ चलती है जो उससे जुड़ी है एक ही कंसोल। खोल के दोनों उदाहरण कंसोल से इनपुट पढ़ने के लिए प्रतिस्पर्धा करेंगे, आमतौर पर वैकल्पिक। इसकी जरूरत है /w (उदाहरण के लिए start /b /w go.bat) दूसरे उदाहरण पर इंतजार करने के लिए, जो उपयोग करने के समान है cmd /c अगर उपयोग कर रहे हैं system। इसके अलावा, अगर आप कॉल कर रहे हैं CreateProcess, भागो go.bat सीधे। इसके लिए कोई ज़रूरत नहीं है cmd /c। - eryksun


मुफ्त जीपीएल ओपन सोर्स "छिपी प्रक्रिया बनाएं"

http://www.commandline.co.uk/chp/

माइक्रोसॉफ्ट सुरक्षा अनिवार्यताएं, और शायद अधिकांश अन्य वायरस / मैलवेयर स्कैनर निष्पादन योग्य, chp.exe का इलाज वायरस के रूप में करेंगे क्योंकि यह वायरस की तरह ही विंडो या टास्क बार बटन प्रदर्शित करने से निर्दिष्ट प्रोग्राम को छुपाता है।

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

आपको यह भी भरोसा नहीं है कि शामिल chp.exe वास्तव में उस स्रोत से बनाया गया था। आप आगे बढ़ सकते हैं और शामिल chp.exe को छोड़ सकते हैं और स्रोत से स्वयं संकलित कर सकते हैं, और ऐसा करने के लिए आवश्यक सभी आवश्यक टूल भी निःशुल्क और डाउनलोड करने योग्य हैं।


आप बस .bat या .cmd फ़ाइल में शॉर्टकट भी बना सकते हैं, फिर शॉर्टकट, गुण, शॉर्टकट टैब पर राइट-क्लिक करें, चलाएं: छोटा करें। फिर निर्धारित कार्यों में, .bat / .cmd फ़ाइल के बजाय शॉर्टकट का उपयोग सीधे करें। इससे खिड़की को पॉप-अप करने से रोका जा सकता है, लेकिन एक टास्कबार बटन अभी भी दिखाई देगा।


6
2017-10-22 21:17





उपयोग छिपी शुरुआत  (लागत $ 20)

छुपा प्रारंभ - कंसोल विंडो या यूएसी प्रॉम्प्ट के बिना एप्लिकेशन और बैच फ़ाइलें चलाएं

कंसोल अनुप्रयोग और बैच फ़ाइलें नियमित रूप से विंडोज स्टार्टअप या शेड्यूल में चलती हैं। इसका मुख्य असुविधा यह है कि प्रत्येक एप्लिकेशन एक कंसोल विंडो खोलता है जो स्क्रीन पर झिलमिलाहट करता है। हिडन स्टार्ट (या हस्टार्ट) एक लाइटवेट कमांड लाइन उपयोगिता है जो आपको पृष्ठभूमि में किसी भी विंडो के बिना कंसोल एप्लिकेशन और बैच फ़ाइलों को चलाने की अनुमति देती है, विंडोज 7 और Vista के तहत यूएसी विशेषाधिकार उन्नयन को संभालती है, समानांतर या तुल्यकालिक रूप से एकाधिक कमांड शुरू करती है, और बहुत कुछ ।

enter image description here


5
2018-05-12 16:03



यह एक बहुत अच्छी तरह से डिजाइन और उपयोगी आवेदन है। - Guru Josh


आप विंडो स्क्रिप्टिंग का उपयोग कर सकते हैं जैसे कि AutoIt

उदाहरण के तौर पर, इसे ऑटोआईटी स्क्रिप्ट संपादक को लिखें। यह काफी सरल है

Run("C:\test\batchfile.bat", "", @SW_HIDE)

यदि आप इसे लूप में चलाना चाहते हैं,

$x=0
Do
 Run("C:\test\batchfile.bat", "", @SW_HIDE)
 Sleep(5000)
Until $x = 1

इसे .exe के रूप में संकलित करें - और आप कर चुके हैं।


इसी तरह, में AutoHotkey:

#NoTrayIcon ; To prevent momentary icon pop-up
run whatever.bat arg1 arg2,,hide 

5
2018-05-29 03:48





सरल समाधान, बिना किसी अतिरिक्त कार्यक्रम का उपयोग किए।

  1. उस बैच फ़ाइल को बनाएं जिसे आप निष्पादित करना चाहते हैं और इसका परीक्षण करें।
  2. Creata इसके लिए एक शॉर्टकट!
  3. शॉर्टकट के गुणों को संपादित करें: टैब शॉर्टकट में, कम से कम रन चुनें। इसे करने के लिए एक गर्म कुंजी और आपका काम किया!

सौभाग्य!


4
2017-10-27 08:23



यह ओपी की समस्या का समाधान नहीं है। बीच एक अंतर है कम से कम तथा छुपा रहे है - nixda
यदि आप सही आइकन का उपयोग करने के लिए शॉर्टकट बदलते हैं, तो टास्क बार पर कम से कम स्पलैश वास्तव में एक अच्छा अनुस्मारक शुरू हो रहा है। - Whoever
यह एक अच्छा और साफ समाधान है मेरे संकट! धन्यवाद! - dmitry_romanov
कम करना ... हेहे। - gumuruh