विंडोज बैच स्क्रिप्ट लॉन्च कार्यक्रम और निकास कंसोल


90

मेरे पास एक बैच स्क्रिप्ट है जिसे मैं एक प्रोग्राम लॉन्च करने के लिए उपयोग करता हूं, जैसे कि notepad.exe। जब मैं इस बैच फ़ाइल पर डबल क्लिक करता हूं, तो नोटपैड सामान्य रूप से शुरू होता है, लेकिन cmdलॉन्च की गई काली खिड़की notepad.exeपृष्ठभूमि में बनी हुई है। notepad.exeCmd विंडो को लॉन्च करने और बनाने के लिए मुझे क्या करना होगा ?

संपादित करें : उपयोग करने से अधिक जटिल है \I

cmdकॉल cygwin, और cygwinशुरू होता है notepad। मैं उपयोग करता हूं

start \I \path\cygwin\bin\bash.exe

और पहली विंडो (cmd) गायब हो जाती है, लेकिन एक दूसरी विंडो (\ cygwin \ bin \ bash.exe) अभी भी पृष्ठभूमि पर है। साइबरविन लिपि में मैंने प्रयोग किया notepad.exe &और फिर बाहर निकल गया।

जवाबों:


204
start "" "%SystemRoot%\Notepad.exe"

""शुरुआत और अपने आवेदन पथ के बीच में रखें ।


जोड़ा गया स्पष्टीकरण:

आम तौर पर जब हम नीचे की तरह बैच फ़ाइल से एक प्रोग्राम लॉन्च करते हैं, तो हम ओपी ने कहा कि पृष्ठभूमि पर काली खिड़कियां होंगी।

%SystemRoot%\Notepad.exe

यह नोटपैड द्वारा एक ही कमांड प्रॉम्प्ट (प्रक्रिया) में चलने के कारण था। कमांड प्रॉम्प्ट बंद हो जाएगा AFTER नोटपैड बंद है। उससे बचने के लिए, हम startइस तरह एक अलग प्रक्रिया शुरू करने के लिए कमांड का उपयोग कर सकते हैं ।

start %SystemRoot%\Notepad.exe

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

start "%SystemRoot%\Notepad.exe"

हालाँकि इस कमांड को चलाने से एक और खाली कमांड प्रॉम्प्ट शुरू हो जाएगा। क्यों? यदि आप इसे खोजते हैं start /?, तो startकमांड इस तर्क के बीच "नए कमांड प्रॉम्प्ट के शीर्षक के रूप में पहचान करेगा जो इसे लॉन्च करने जा रहा है। इसलिए, इसे हल करने के लिए, हमारे पास इस तरह की कमांड है:

start "" "%SystemRoot%\Notepad.exe"

का पहला तर्क ""शीर्षक सेट करना है (जिसे हम रिक्त के रूप में सेट करते हैं), और दूसरा तर्क "%SystemRoot%\Notepad.exe"लक्ष्य कमांड चलाने के लिए है (जो पथ में रिक्त स्थान का समर्थन करता है)।

यदि आपको कमांड में पैरामीटर जोड़ने की जरूरत है, तो बस उन्हें उद्धृत करें, अर्थात:

start "" "%SystemRoot%\Notepad.exe" "<filename>" 

12
ध्यान दें: जब आप इस तरह से एक जावा जार फ़ाइल शुरू करना चाहते हैं, तो javawनिष्पादन योग्य का उपयोग करना सुनिश्चित करें (बस नहीं java, क्योंकि javaएक और बैच विंडो शुरू होगी): उदाहरण के लिएstart "" "javaw" -jar C:\JavaProject\myApp.jar
TmTron

@checksum कृपया अपने उदाहरण का विस्तार भी कर सकते हैं कि आवेदन की मानक त्रुटि और स्टैंडर आउटपुट को कैसे पुनर्निर्देशित किया जाए?
स्टारफिश

@ स्टार्फ़िश मुझे लगता है कि नोटपैड में स्टडआउट और स्टेडर नहीं है। लेकिन आपके सवाल के लिए, यह कुछ ऐसा होगा application.exe > stdout.txt 2>stderr.txt। उपरोक्त उत्तर के लिए अपने प्रश्न को जोड़ना मूल पोस्टर के प्रश्न से भटक जाएगा। अधिक विस्तार से पूछने के लिए आप एक नया प्रश्न शुरू कर सकते हैं।
चेकसम

1
बिलकुल संवेदनहीन समाधान। विंडोज फिर से जीतता है।
урослав Рахматуллин

9

का उपयोग करें start notepad.exe

अधिक जानकारी के साथ start /?


1
और ठीक कौन सा तर्क? /B? मैं इसे पढ़ता हूं, लेकिन अगर मैं start /B notepad.execmd विंडो का उपयोग करता हूं तो वह गायब नहीं होती है।
पोसा

ठीक है, उपयोग करने से अधिक जटिल है \I। सीएमडी कॉल साइबरविन, और साइबरविन नोटपैड शुरू करते हैं। मैं उपयोग करता हूं start \I cygwinऔर पहली विंडो गायब हो जाती है, लेकिन एक दूसरी विंडो अभी भी पृष्ठभूमि पर है। notepad.exe &exit
साइबरविन

साइबरस्टार्ट नोटपैड शुरू करता है, लेकिन कंसोल पृष्ठभूमि में रहता है।
पोसा

5

इसे शुरू करने के लिए सबसे सरल तरीका है start

start notepad.exe

यहाँ आप के बारे में अधिक जानकारी पा सकते हैंstart


4

%ComSpec% /c %systemroot%\notepad.exe


यह cmd विंडो को बंद न करे%ComSpec% /c emacs.exe "-rv" "--no-splash"
jcubic

0

हम्म ... मैं इसे अपने बैच फ़ाइलों में से एक में करता हूं, बिना कॉल या स्टार्ट का उपयोग किए:

%SystemRoot%\notepad.exe ..\%URI%
GOTO ENDF

हालांकि मेरे पास Cygwin स्थापित नहीं है और मैं Windows XP पर हूं।


"The system cannot find the batch label specified - ENDF"विंडोज 10 पर त्रुटि मिली
jcubic

0
start "" ExeToExecute

Xilinx xsdk के मामले में विधि मेरे लिए काम नहीं करती है, क्योंकि जैसा कि @ जेब ने नीचे टिप्पणी में बताया है, यह एक एक्ट फाइल है।

इसलिए डी-फैक्टो काम नहीं करता है

start "" BatToExecute

मैं इस तरह से xsdk खोलने की कोशिश कर रहा हूं और यह एक अलग cmd खोलता है जिसे बंद करने की आवश्यकता है और xsdk अपने आप चल सकता है

Xsdk I को लॉन्च करने से पहले मैं (स्रोत) Env / Paths ( settings64.bat के साथ ) चलाता हूं ताकि xsdk.bat कमांड को पहचानें (बस xsdk, withoitu .bat के रूप में )।

क्या .bat के साथ काम करता है

call BatToExecute

2
यह शायद एक सवाल का जवाब देता है, लेकिन यह नहीं। यह प्रश्न .exe फ़ाइल ( notepad.exe) को cmd.exe से डिकॉय करने के साथ शुरू करने के बारे में है । आप का जवाब कैसे एक ही उदाहरण में एक .bat फ़ाइल शुरू करने के लिए
जेब

-4

शुरू करने की कोशिश करो path\to\cygwin\bin\bash.exe


1
यह वास्तव में OPs प्रश्न का उत्तर नहीं देता है। वह नहीं पूछ रहा था कि कैसे शुरू करें cygwin
जेरेमी जे स्टारचर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.