मैं एक विंडोज़ बैच फ़ाइल कैसे बनाऊं जो निष्पादित होने पर कमांड प्रॉम्प्ट नहीं दिखाती है? [डुप्लिकेट]


58

इस सवाल का पहले से ही यहाँ एक जवाब है:

मैंने रेडकार नामक एक रूबी रत्न स्थापित किया है, जिसे कमांड लाइन से लॉन्च किया गया है। जब यह चलता है, तो यह शेल को तब तक चुराता है जब तक यह समाप्त नहीं हो जाता है, इसलिए मुझे कमांड लाइन का काम जारी रखने के लिए एक नई शेल विंडो बनानी होगी। मैं जिस शेल का उपयोग कर रहा हूं वह MySysGit का GITBash शेल है।

मुझे एक Redcar.bat फ़ाइल मिली, जो कि Redcar को शॉर्टकट के रूप में लॉन्च करने के लिए है, मुझे लगता है, लेकिन मैं नहीं चाहता कि जब भी मैं BAT फ़ाइल लॉन्च करूं तो अतिरिक्त कमांड प्रॉम्प्ट विंडो खोलें।

मैं प्रॉम्प्ट देखे बिना BAT कैसे चलाऊँ?


1
काश मैं इस +1 का जवाब एक अच्छे प्रश्न के लिए जानता था।
Supercereal

@Kyle एक ऐसी ही सवाल से पहले कहा गया है superuser.com/questions/191149/how-to-execute-cmd-exe-silently HSTART का उल्लेख है और कुछ समय का उल्लेख एक VBS फ़ाइल बहुत यह लॉन्च कर सकते हैं
barlop

क्या आप अपने चयनित उत्तर को अपडेट कर सकते हैं? क्या यह संभव है और बहुत आसान है जब आप जानते हैं कि कैसे .. बैच फ़ाइल: पंक्ति 1: set var1=hello.txtपंक्ति 2:start "test" notepad.exe "%~dp0%var1%"
कोडी ब्राउन

बस उपयोग ::या @REM। स्रोत: superuser.com/a/843754/101936
PHP

जवाबों:


38

आप एक बैच फ़ाइल को कमांड कमांड में बिल्ट के साथ निष्पादित नहीं कर सकते हैं, जब तक कि बैच फ़ाइल बाहर नहीं निकल जाती है तब तक एक खिड़की खुली रखी जाएगी।

आप क्या कर सकते हैं यह सुनिश्चित करने के लिए कदम उठाएं कि बैच फ़ाइल जितनी जल्दी हो सके बाहर निकल जाए। यदि संभव हो तो, startकमांड के साथ जो भी प्रोग्राम है उसे चलाने के लिए बैच फ़ाइल को संशोधित करें । डिफ़ॉल्ट रूप से, startप्रोग्राम से बाहर निकलने का इंतजार किए बिना तुरंत लौटता है, इसलिए बैच फ़ाइल चलती रहेगी और, संभवतः, तुरंत बाहर निकलें। दंपति जो बैच फ़ाइल को चलाने के लिए अपने शॉर्टकट को संशोधित करने के साथ, और आप केवल एक विंडो ऑनस्क्रीन देखे बिना टास्कबार फ्लैश देखेंगे।

इसके लिए एक चेतावनी यह है कि यदि आप एक कंसोल-मोड प्रोग्राम चला रहे हैं, जो कई स्क्रिप्ट दुभाषियों हैं, तो बैच फ़ाइल प्रोग्राम के बाहर निकलने का इंतजार करेगी, और उपयोग करने startसे एक नई कंसोल विंडो स्पॉन होगी। इस मामले में आपको जो करने की आवश्यकता है वह कंसोल-आधारित एक के बजाय दुभाषिया के विंडोज-आधारित संस्करण को चलाने के लिए है - कोई startआवश्यक नहीं । पर्ल के लिए, आप के wperl.exeबजाय चलेंगे perl.exe। पायथन के लिए, यह pythonw.exeइसके बजाय है python.exe। पुराने win32 रूबी वितरण जो मैंने डाउनलोड किया है rubyw.exe, वही काम करना चाहिए।

एक छिपी खिड़की के साथ कमांड प्रॉम्प्ट को चलाने के लिए एक 3-पार्टी टूल का उपयोग करने की अंतिम संभावना है। मैंने ऐसी चीजों के बारे में सुना है, लेकिन उनके लिए कभी भी इसका उपयोग नहीं किया था, इसलिए मुझे आपको इंगित करने के लिए विशेष रूप से कुछ भी नहीं पता है।


धन्यवाद जो मेरे सवाल का जवाब देता है। जो वास्तव में कष्टप्रद था वह यह नहीं था कि प्रॉम्प्ट विंडो दिखाई देती थी, लेकिन जब तक कार्यक्रम चल रहा था तब तक इसे खुला रहना था। अब फ्लैश पूरी तरह से मुस्करा रहा है, और लगभग कष्टप्रद नहीं है। जाँच करेगा कि क्या मैं रूबी के बजाय रूबी को चलाने के लिए स्क्रिप्ट को संशोधित कर सकता हूं।
जेक

1
"अजगर" के बीच किसी भी "अजगर" के अंतर को समझाने के लिए बहुत धन्यवाद - आखिरकार मुझे पृष्ठभूमि में कमांड प्रॉम्प्ट के बिना हमारे पास मौजूद पायथन विंडो टूल्स को चलाने का हल मिल गया।
एफपी

´java.exe´ और ´javaw.exe the समान हैं।
redbeam_

आप कर सकते हैं - सिर्फ बैच कोड में ही नहीं। वास्तव में वहाँ कैसे कमांड प्रॉम्प्ट को छिपाने के लिए के बारे में के रूप में के साथ यहाँ पर Qs के एक नंबर रहे हैं superuser.com/questions/62525/... superuser.com/questions/191149/how-to-execute-cmd-exe-silently
barlop

21

मुझे लगता है कि डॉस विंडो को खोले बिना बैच फ़ाइल को चलाने का यह सबसे आसान और सबसे छोटा समाधान है, जब आप समय-समय पर चलाने के लिए आदेशों के एक सेट को शेड्यूल करना चाहते हैं, तो यह बहुत ही विचलित करने वाला हो सकता है, इसलिए डॉस विंडो पॉप अप करता रहता है, यहाँ आपका समाधान है । बैच फ़ाइल को कॉल करने के लिए VB स्क्रिप्ट का उपयोग करें ...

Set WshShell = CreateObject("WScript.Shell" ) 
WshShell.Run chr(34) & "C:\Batch Files\ mycommands.bat" & Chr(34), 0 
Set WshShell = Nothing 

एक संपादक के ऊपर लाइनों को कॉपी करें और .VBS एक्सटेंशन के साथ फाइल को सेव करें। तदनुसार .BAT फ़ाइल नाम और पथ संपादित करें। तो बस .vbs फ़ाइल चलाएं और जादू होता है!


8

आप कमांड प्रॉम्प्ट के भीतर से START / MIN CMD.EXE / C mybatchfile.bat के साथ एक और बैच फ़ाइल चला सकते हैं।

बाहर से यह cmd कंसोल विंडो लाएगा लेकिन उससे बचने के लिए, आप कम से कम शुरू करने के लिए संशोधित गुणों के साथ एक शॉर्टकट फ़ाइल बना सकते हैं


2
विंडोज 8.1 में, यह विकल्प गुण में है -> शॉर्टकट टैब -> रन: -> न्यूनतम (डिफ़ॉल्ट "सामान्य विंडो" है)
pix

5

ऐसा करने के लिए, अपनी बैच फ़ाइल को एक निष्पादन योग्य फ़ाइल में बदलने के लिए प्रोग्राम बैट टू एक्सई कनवर्टर का उपयोग करें।

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

निर्वासित करना


वेबसाइट को आपके कंप्यूटर को क्रिप्टो कैप्चा को "हल" करने की आवश्यकता है। यहां कार्यक्रम है nofile.io/f/q4o8dauVQ4P/Bat_To_Exe_Converter.zip
rluks

4

डेनिस विलियमसन के जवाब पर जारी रखते हुए, आप जिस बैच फ़ाइल START /Bको निष्पादित कर रहे हैं , उसके लिए आप बैच फ़ाइल और एपेंड (प्रीपेन्ड) को संपादित कर सकते हैं।

उदाहरण के लिए, मेरे पास एक बैच फ़ाइल है जो पोटीन चलाता है और उसी समस्या (अतिरिक्त सीएमडी) थी, इसलिए मैंने इसे कैसे लिखा है:

@ECHO रवाना
स्टार्ट / बी putty.exe लोड name_of_my_config_file

इसने पूरी तरह से काम किया।


4

इसे आजमाइए:

START /B batchfile

नोट बरलोप द्वारा जोड़ा गया

शुरू /? / बी का कहना है

 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.

3
यदि मेरे पास कमांड प्रॉम्प्ट खुला है, तो यह काम कर सकता है, लेकिन जब मैं .bat का उपयोग कर रहा हूं तो मैं इसे डबल क्लिक कर रहा हूं या अपने डेस्कटॉप पर इसका शॉर्टकट ले सकता हूं। मैं इस कार्यक्रम को लॉन्च करने के लिए कमांड प्रॉम्प्ट होने से बचने की कोशिश कर रहा हूं।
जेक

3

मैं आपके मुद्दे के रूप में स्पष्ट नहीं हूं, लेकिन मेरी कुछ बैच फ़ाइलों के साथ, मैं एक "डमी" का उपयोग करता हूं, जिसका एकमात्र उद्देश्य मुख्य बैच फ़ाइल लॉन्च करना है।

तो GO.BAT होगा:

cmd /c go2.bat %1 %2 %3
exit

निकास कमांड प्रॉम्प्ट विंडो को बंद कर देता है जो अन्यथा खुले रहेंगे।

और GO2.BAT में वास्तव में बैच फ़ाइल सामग्री होगी जो मैं चाहता हूं।

  @echo off
  set userid=

  if NOT [%1]==[] goto userid:
  set /p userid=Enter USERID:  
  goto set_usr:

 :userid
 set userid=%1
 shift

 :set_usr
 if %userid%==steven goto steven:
 ...


1

यदि आप अभी भी कंसोल विंडो को नहीं दिखाने में रुचि रखते हैं, तो यहां स्टैकओवरफ़्लो से एक समाधान है जो मेरे लिए काम करता है (मेरे मामले में मैंने रजिस्ट्री में कुछ भी नहीं डाला, लेकिन जहां मुझे ज़रूरत थी)।


0

बस रास्ते के सामने / b स्विच लगाएं। यह दूसरा कमांड प्रॉम्प्ट नहीं खोलेगा।


0

Indago का जवाब मेरे लिए अब तक का सबसे अच्छा समाधान रहा है। VBS फ़ाइल मुझे स्क्रिप्ट के माध्यम से बैच की कार्यक्षमता को चलाने की अनुमति देती है, सीएमडी विंडो को पहले स्थान पर होने से रोकती है। हालांकि कुछ कैविएट हैं:

  1. यदि आपके बैच को व्यवस्थापक अधिकारों की आवश्यकता है, तो एक मौजूदा बैच बनाएं या उपयोग करें जो VBS को कॉल करता है और उस बैच को प्रशासक के रूप में चलाता है।

  2. बिना चिपचिपाहट के साथ, यह समझना मुश्किल हो सकता है कि क्या आप जो करने की कोशिश कर रहे हैं वह वास्तव में जिस तरह से आप चाहते हैं वह चल रहा है।

उस के साथ, मैंने कहा कि मैं इसे एकीकृत करने से पहले यह सुनिश्चित करने के लिए थोड़ा मॉक सेट-अप / यूनिट परीक्षण करूँ कि यह ठीक उसी तरह काम कर रहा है जैसे आप इसे चाहते हैं।


0

मैंने अतीत में cmando का उपयोग किया है , और ऐसा लगता है कि मुझे जो चाहिए उसके लिए काम किया है।

आप शायद निम्नलिखित विकल्पों में से एक का उपयोग करना चाहेंगे: CMDOW [window] /HID

/HID निर्दिष्ट विंडो को छुपाता है

CMDOW [window] /END

/END निर्दिष्ट विंडो बंद करता है

CMDOW [window] /CLS

/CLS विनम्रता से खिड़की को बंद करने के लिए कहा (कुछ खिड़कियां एक संवाद बॉक्स खोल सकती हैं)

उम्मीद है की यह मदद करेगा।


-5

बस बैच फ़ाइल का एक शॉर्टकट बनाएं, उस पर राइट क्लिक करें, क्लिक करें Properties, Generalटैब पर जाएं, नामक बॉक्स की जांच Hiddenकरें, क्लिक करें Applyऔर फिर चालू करें OK
अब जैसे ही आप शॉर्टकट खोलते हैं यह बैच फ़ाइल हिडन में चलेगा।


यह गलत है, क्योंकि यह सिर्फ शॉर्टकट / बैच फ़ाइल को छुपाता है जबकि उपयोगकर्ता जो चाहता है वह अदृश्य रूप से चलाने के लिए एक बैच फ़ाइल है।
यहाँ जड़ मत करो plz ...
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.