प्रोग्राम शुरू होने के बाद कंसोल को खुले बिना मैं बैच फ़ाइल से प्रोग्राम कैसे चला सकता हूं?


184

फिलहाल मेरी बैच फ़ाइल इस तरह दिखती है:

myprogram.exe param1

कार्यक्रम शुरू होता है लेकिन डॉस विंडो खुली रहती है। मैं इसे कैसे बंद कर सकता हूं?


3
आपको संभवतः पोस्ट किए गए मार्शल के स्वीकृत उत्तर को बदलना चाहिए।
Rev1.0

जवाबों:


163

आप बाहर निकलने वाले कीवर्ड का उपयोग कर सकते हैं। यहाँ मेरे बैच फ़ाइलों में से एक उदाहरण है:

start myProgram.exe param1
exit

18
ध्यान दें कि यह अच्छी चीजें नहीं करेगा अगर आप बैच फ़ाइल पर सिर्फ डबल-क्लिक करने के बजाय कंसोल का उपयोग कर रहे हैं। आम तौर exitपर एक बैच फ़ाइल में डालने की कोई आवश्यकता नहीं होती है ।
जॉय

27
मैंने Win8 में इस कमांड की कोशिश की। मुझे यकीन नहीं है कि यह अलग है, लेकिन ध्यान दें कि आपको इसे अपने पहले पैरामीटर के रूप में विंडो शीर्षक के साथ प्रदान करना होगा। जब मैं इसे पैट्रिक द्वारा वर्णित तरीके से चलाऊंगा, तो यह विंडो शीर्षक के रूप में "myProgram.exe" के साथ एक नया कमांड प्रॉम्प्ट खोलेगा:start "VPN" "C:\Program Files (x86)\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe"
एडम प्लोचर

9
ध्यान दें कि यदि आपके कमांड में स्थान हैं और आप इसे उद्धरण में रखते हैं, तो आपको इससे पहले एक अतिरिक्त उद्धृत पैरामीटर जोड़ना होगा, क्योंकि START पहले उद्धृत पैरामीटर को विंडो नाम के रूप में और केवल कमांड नाम के रूप में फ़ोलोइंग दूसरे पैरामीटर की व्याख्या करता है।
डेविड बालैसिक

258

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

Start ""  "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"

शुरू होने के बाद दोहरे उद्धरण पर ध्यान दें।


55
@ शेर्क्ले उचित प्रारूप हैstart <window name> <program name>
क्रुग २५'१३ को

5
यह सही जवाब है। धन्यवाद, रिक्त दोहरे उद्धरण ठीक वही हैं जिनकी मुझे आवश्यकता थी।
रिचर्ड

मेरे पास एक बैकअप स्क्रिप्ट है जिसे मैं साप्ताहिक रूप से चलाता हूं और इसे हर हफ्ते कभी-कभी थोड़ा संशोधित करता हूं, इसे प्राप्त करने की कोशिश कर रहा हूं) मेरे प्रोग्राम को बंद करें, बी) बैकअप मेरा डेटा, और सी) प्रोग्राम को पुनरारंभ करें और कमांड प्रॉम्प्ट को बंद करें। इसे अंत में बंद करने के लिए कमांड प्रॉम्प्ट मिला (मेरे अगले बैकअप को ट्रिगर करने से भी रोका गया, मुझे उस कमांड प्रॉम्प्ट को बंद करना पड़ा>)।
नोबल उत्थान

@NobleUplift:: "\ Program Files (x86) \ जेटब्रेन्स \ IntelliJ विचार 2016/02/05 \ बिन \ idea64.exe सी" और मेरे लिए यह काम किया, .. नीचे दिए गए सटीक लाइन प्रारंभ "" है
Xinus

53

START कमांड देखें, आप ऐसा कर सकते हैं:

START rest-of-your-program-name

उदाहरण के लिए, यह बैच-फ़ाइल तब तक प्रतीक्षा करेगी जब तक कि नोटपैड बाहर न निकल जाए:

@echo off
notepad c:\test.txt

हालाँकि, यह नहीं होगा:

@echo off
start notepad c:\test.txt

31

मेरे अपने प्रश्न से :

start /b myProgram.exe params...

यदि आप प्रोग्राम को मौजूदा DOS सत्र से शुरू करते हैं।

यदि नहीं, तो एक vb स्क्रिप्ट को कॉल करें

wscript.exe invis.vbs myProgram.exe %*

विंडोज स्क्रिप्ट होस्ट भागो () विधि लेता है:

  • intWindowStyle: 0 का अर्थ है "अदृश्य खिड़कियां"
  • bWaitOnReturn: false इसका मतलब है कि आपकी पहली स्क्रिप्ट को समाप्त करने के लिए आपकी दूसरी स्क्रिप्ट का इंतजार करने की आवश्यकता नहीं है

यहाँ invis.vbs है:

set args = WScript.Arguments
num = args.Count

if num = 0 then
    WScript.Echo "Usage: [CScript | WScript] invis.vbs aScript.bat <some script arguments>"
    WScript.Quit 1
end if

sargs = ""
if num > 1 then
    sargs = " "
    for k = 1 to num - 1
        anArg = args.Item(k)
        sargs = sargs & anArg & " "
    next
end if

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run """" & WScript.Arguments(0) & """" & sargs, 0, False

1
+1 करने का एक आसान तरीका है, लेकिन यह एकमात्र उत्तर है जो मेरे लिए काम करता है।
DN

धन्यवाद - वह / बी झंडा वही था जिसकी मुझे तलाश थी।
एपी

21

यह केवल एक चीज है जिसने मेरे लिए काम किया जब मैंने एक बैच फ़ाइल से जावा क्लास चलाने की कोशिश की:

start "cmdWindowTitle" /B "javaw" -cp . testprojectpak.MainForm

startउचित सिंटैक्स का पालन करके आप अपनी परियोजना के लिए कमांड को अनुकूलित कर सकते हैं :

Syntax
      START "title" [/Dpath] [options] "command" [parameters]

Key:
   title      : Text for the CMD window title bar (required)
   path       : Starting directory
   command    : The command, batch file or executable program to run
   parameters : The parameters passed to the command

Options:
   /MIN       : Minimized
   /MAX       : Maximized
   /WAIT      : Start application and wait for it to terminate
   /LOW       : Use IDLE priority class
   /NORMAL    : Use NORMAL priority class
   /HIGH      : Use HIGH priority class
   /REALTIME  : Use REALTIME priority class

   /B         : Start application without creating a new window. In this case
                ^C will be ignored - leaving ^Break as the only way to 
                interrupt the application
   /I         : Ignore any changes to the current environment.

   Options for 16-bit WINDOWS programs only

   /SEPARATE   Start in separate memory space (more robust)
   /SHARED     Start in shared memory space (default)

18

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

start "name" /B myprogram.exe param1

4
"title"विकल्प महत्वपूर्ण है। यदि प्रोग्राम के पथ में रिक्त स्थान शामिल हैं तो इसे उद्धरणों द्वारा संलग्न किया जाना है, इसलिए हमें "title"विफलता से बचने के लिए जोड़ना होगा।
ईस्वी

1
यदि आप मुख्य विंडो बंद करते हैं, तो पृष्ठभूमि प्रक्रिया 'myprogram.exe' भी बंद हो जाती है।
आदित्य गुप्त

14

"अंतरिक्ष समस्या" और स्थानीय निर्भरता कैसे हल करें:

@echo off
cd "C:\Program Files\HeidiSQL"
start heidisql.exe

cd "C:\Program Files (x86)\Google\Chrome\Application"
start chrome.exe

exit

यह सवाल का जवाब नहीं है
jeb

2
सच है, लेकिन मुझे लगता है कि यह एक अच्छा समाधान देता है जो अन्य समस्याओं को हल करता है जो मेरे पास भी थे।
गिलको

2
मेरे लिए समाधान था। डॉस विंडो खुलती है लेकिन फिर से बंद हो जाती है और समाधान काम करता है। मैं
डाउनवोट्स

मैं भी। समाधान काम करता है, और समस्या को हल करता है
Gilco

2

इस सवाल के जवाब के भार पहले से ही, लेकिन मैं कुछ महत्वपूर्ण स्पष्ट करने के लिए यह पोस्ट कर रहा हूं, हालांकि यह हमेशा मामला नहीं हो सकता है:

Start "C:\Program Files\someprog.exe"

कुछ विंडोज़ संस्करणों में समस्याएँ हो सकती हैं क्योंकि Startवास्तव में उद्धरण चिह्नों का पहला सेट एक विंडोज़ शीर्षक होने की उम्मीद करता है। इसलिए पहले एक टिप्पणी को उद्धृत करना या एक कोरी टिप्पणी करना सबसे अच्छा अभ्यास है:

Start "" "C:\Program Files\someprog.exe"

या

Start "Window Title" "C:\Program Files\someprog.exe"

0

GUI से ऐसा करने का मेरा समाधान:

  1. उस प्रोग्राम का शॉर्टकट बनाएं जिसे आप चलाना चाहते हैं;

  2. शॉर्टकट के गुणों को संपादित करें;

  3. TARGETफ़ील्ड को बदलें %COMSPEC% /C "START "" "PROGRAMNAME"";

  4. RUNफ़ील्ड को कम से कम में बदलें ।

तैयार! देखिए आपको कैसा लगा ...

पुनश्च: कार्यक्रम के मापदंडों को दो अंतिम उद्धरण चिह्नों के बीच डाला जा सकता है; PROGRAMNAMEस्ट्रिंग या तो एक फ़ाइल नाम, एक रिश्तेदार या एक पूर्ण पथ हो सकता है - अगर आप एक निरपेक्ष पथ में डाल दिया और ड्राइव अक्षर और अर्धविराम मिटा, तो यह एक में काम करेंगे क्या पत्र इसे करने के लिए मेजबान कंप्यूटर प्रदान करती है कोई फर्क नहीं पड़ता ThumbDrive .. , (भी, यदि आप शॉर्टकट को एक ही फ़ोल्डर में रखते हैं और प्रोग्राम फ़ाइल नाम PROGRAMNAMEको %CD%वेरिएबल से जोड़ते हैं, तो पथ हमेशा मेल खाता रहेगा; एक ही ट्रिक का उपयोग START INफ़ील्ड में किया जा सकता है )।


0

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

खोलने के लिए Task Scheduler:

  • स्टार्ट -> रन / सर्च -> 'cmd'
  • टाइप करें taskschd.msc-> दर्ज करें

दाईं ओर से, Create Basic Taskमेनू पर क्लिक करें और उसका पालन करें।

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


0

यहाँ मेरा पसंदीदा समाधान है। यह एक उत्तर से लिया गया है एक ऐसे ही प्रश्न के ।

बैच फ़ाइल को कॉल करने के लिए VBS स्क्रिप्ट का उपयोग करें:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\path\to\your\batchfile.bat" & Chr(34), 0
Set WshShell = Nothing

एक संपादक के ऊपर लाइनों को कॉपी करें और .VBS एक्सटेंशन के साथ फाइल को सेव करें।

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