2008-11-27 4 views
151

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

myprogram.exe param1 

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

उत्तर

135

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

start myProgram.exe param1 
exit 
+16

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

+21

मैंने Win8 में इस आदेश को आजमाया। मुझे यकीन नहीं है कि यह अलग है, लेकिन ध्यान दें कि आपको इसे अपने पहले पैरामीटर के रूप में विंडो शीर्षक प्रदान करना होगा।जब मैं पैट्रिक का वर्णन करता हूं, तो यह "myProgram.exe" के साथ विंडो शीर्षक के रूप में एक नया कमांड प्रॉम्प्ट खुलता है: 'प्रारंभ करें' वीपीएन "" सी: \ प्रोग्राम फ़ाइलें (x86) \ सिस्को \ सिस्को कोई भी कनेक्ट सुरक्षित गतिशीलता क्लाइंट \ vpnui.exe "' –

+3

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

50

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

START rest-of-your-program-name 

उदाहरण के लिए, इस बैच फ़ाइल नोटपैड बाहर निकलता है जब तक इंतजार करेंगे:

@echo off 
notepad c:\test.txt 

बहरहाल, यह नहीं होगा:

@echo off 
start notepad c:\test.txt 
18

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

start "name" /B myprogram.exe param1 
+4

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

26

मेरी own question से:

start /b myProgram.exe params... 

काम करता है अगर आप एक मौजूदा डॉस सत्र से कार्यक्रम शुरू करते हैं।

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

wscript.exe invis.vbs myProgram.exe %* 

फोन Windows Script Host Run() method लेता है:

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

यहां आने के लिए अपनी दूसरी स्क्रिप्ट का इंतजार करें s.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 एक आसान तरीका होना चाहिए, लेकिन यह एकमात्र उत्तर है जो मेरे लिए काम करता है। –

+0

धन्यवाद - वह/बी ध्वज बिल्कुल वही था जो मैं ढूंढ रहा था। –

0

जीयूआई से यह करने के लिए मेरे समाधान:

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

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

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

  4. RUN फ़ील्ड को कम करने के लिए बदलें।

तैयार! देखें कि आप इसे कैसे पसंद करते हैं ...

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

18

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

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) 
193

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

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

नोटिस शुरू होने के बाद दोहरे उद्धरण।

+12

वाह ... कोई भी जानता है कि यह क्यों काम करता है? – SharkAlley

+49

@ शार्कएली उचित प्रारूप '<प्रोग्राम का नाम> ' – Kruug

+4

यह सही उत्तर है। धन्यवाद, खाली डबल उद्धरण बिल्कुल वही हैं जो मुझे चाहिए था। – Richard

0

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

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

  • प्रारंभ -> भागो/खोज ->'cmd'
  • प्रकार taskschd.msc -> प्रवेश

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

उम्मीद है कि इससे मदद मिलती है।

10

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

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

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

exit 
+0

यह नहीं है प्रश्न – jeb

+2

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

+2

मेरे लिए समाधान था। डॉस विंडो खुलती है लेकिन फिर बंद हो जाती है और समाधान काम करता है। मैं डाउनवॉट्स को समझ नहीं पा रहा हूं (मैंने ऊपर उठाया) – JoeFox

0

यहाँ मेरी पसंदीदा समाधान है। इसे एक समान प्रश्न पर answer से लिया गया है। एक संपादक के ऊपर लाइनों

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

कॉपी और .vbs एक्सटेंशन के साथ फ़ाइल सहेजें:

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

0

मैं इस समस्या हो रही थी और मेरे लिए काम किया है:

run myprogram.exe param1 
संबंधित मुद्दे

 संबंधित मुद्दे