फिलहाल मेरी बैच फ़ाइल इस तरह दिखती है:
myprogram.exe param1
कार्यक्रम शुरू होता है लेकिन डॉस विंडो खुली रहती है। मैं इसे कैसे बंद कर सकता हूं?
फिलहाल मेरी बैच फ़ाइल इस तरह दिखती है:
myprogram.exe param1
कार्यक्रम शुरू होता है लेकिन डॉस विंडो खुली रहती है। मैं इसे कैसे बंद कर सकता हूं?
जवाबों:
आप बाहर निकलने वाले कीवर्ड का उपयोग कर सकते हैं। यहाँ मेरे बैच फ़ाइलों में से एक उदाहरण है:
start myProgram.exe param1
exit
exit
पर एक बैच फ़ाइल में डालने की कोई आवश्यकता नहीं होती है ।
start "VPN" "C:\Program Files (x86)\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe"
प्रोग्राम की प्रतीक्षा करने से बैच फ़ाइल को रोकने के लिए स्टार्ट कमांड का उपयोग करें। बस उस प्रोग्राम के सामने एक खाली डबल कोट रखना याद रखें जिसे आप "स्टार्ट" के बाद चलाना चाहते हैं। उदाहरण के लिए, यदि आप बैच कमांड से विजुअल स्टूडियो 2012 चलाना चाहते हैं:
Start "" "C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\devenv.exe"
शुरू होने के बाद दोहरे उद्धरण पर ध्यान दें।
start <window name> <program name>
START कमांड देखें, आप ऐसा कर सकते हैं:
START rest-of-your-program-name
उदाहरण के लिए, यह बैच-फ़ाइल तब तक प्रतीक्षा करेगी जब तक कि नोटपैड बाहर न निकल जाए:
@echo off
notepad c:\test.txt
हालाँकि, यह नहीं होगा:
@echo off
start notepad c:\test.txt
मेरे अपने प्रश्न से :
start /b myProgram.exe params...
यदि आप प्रोग्राम को मौजूदा DOS सत्र से शुरू करते हैं।
यदि नहीं, तो एक vb स्क्रिप्ट को कॉल करें
wscript.exe invis.vbs myProgram.exe %*
विंडोज स्क्रिप्ट होस्ट भागो () विधि लेता है:
यहाँ 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
यह केवल एक चीज है जिसने मेरे लिए काम किया जब मैंने एक बैच फ़ाइल से जावा क्लास चलाने की कोशिश की:
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)
आपको यह कोशिश करनी चाहिए। यह बिना किसी विंडो के प्रोग्राम शुरू करता है। यह वास्तव में एक सेकंड के लिए चमकता है, लेकिन काफी जल्दी दूर हो जाता है।
start "name" /B myprogram.exe param1
"title"
विकल्प महत्वपूर्ण है। यदि प्रोग्राम के पथ में रिक्त स्थान शामिल हैं तो इसे उद्धरणों द्वारा संलग्न किया जाना है, इसलिए हमें "title"
विफलता से बचने के लिए जोड़ना होगा।
"अंतरिक्ष समस्या" और स्थानीय निर्भरता कैसे हल करें:
@echo off
cd "C:\Program Files\HeidiSQL"
start heidisql.exe
cd "C:\Program Files (x86)\Google\Chrome\Application"
start chrome.exe
exit
इस सवाल के जवाब के भार पहले से ही, लेकिन मैं कुछ महत्वपूर्ण स्पष्ट करने के लिए यह पोस्ट कर रहा हूं, हालांकि यह हमेशा मामला नहीं हो सकता है:
Start "C:\Program Files\someprog.exe"
कुछ विंडोज़ संस्करणों में समस्याएँ हो सकती हैं क्योंकि Start
वास्तव में उद्धरण चिह्नों का पहला सेट एक विंडोज़ शीर्षक होने की उम्मीद करता है। इसलिए पहले एक टिप्पणी को उद्धृत करना या एक कोरी टिप्पणी करना सबसे अच्छा अभ्यास है:
Start "" "C:\Program Files\someprog.exe"
या
Start "Window Title" "C:\Program Files\someprog.exe"
GUI से ऐसा करने का मेरा समाधान:
उस प्रोग्राम का शॉर्टकट बनाएं जिसे आप चलाना चाहते हैं;
शॉर्टकट के गुणों को संपादित करें;
TARGET
फ़ील्ड को बदलें %COMSPEC% /C "START "" "PROGRAMNAME""
;
RUN
फ़ील्ड को कम से कम में बदलें ।
तैयार! देखिए आपको कैसा लगा ...
पुनश्च: कार्यक्रम के मापदंडों को दो अंतिम उद्धरण चिह्नों के बीच डाला जा सकता है; PROGRAMNAME
स्ट्रिंग या तो एक फ़ाइल नाम, एक रिश्तेदार या एक पूर्ण पथ हो सकता है - अगर आप एक निरपेक्ष पथ में डाल दिया और ड्राइव अक्षर और अर्धविराम मिटा, तो यह एक में काम करेंगे क्या पत्र इसे करने के लिए मेजबान कंप्यूटर प्रदान करती है कोई फर्क नहीं पड़ता ThumbDrive .. , (भी, यदि आप शॉर्टकट को एक ही फ़ोल्डर में रखते हैं और प्रोग्राम फ़ाइल नाम PROGRAMNAME
को %CD%
वेरिएबल से जोड़ते हैं, तो पथ हमेशा मेल खाता रहेगा; एक ही ट्रिक का उपयोग START IN
फ़ील्ड में किया जा सकता है )।
यदि यह बैच फ़ाइल कुछ ऐसी है जिसे आप अनुसूचित या हमेशा चलाना चाहते हैं; आप विंडोज़ शेड्यूल टूल का उपयोग कर सकते हैं और यह बैच फ़ाइल शुरू करते समय एक विंडो में नहीं खुलता है।
खोलने के लिए Task Scheduler
:
'cmd'
taskschd.msc
-> दर्ज करेंदाईं ओर से, Create Basic Task
मेनू पर क्लिक करें और उसका पालन करें।
उम्मीद है की यह मदद करेगा।
यहाँ मेरा पसंदीदा समाधान है। यह एक उत्तर से लिया गया है एक ऐसे ही प्रश्न के ।
बैच फ़ाइल को कॉल करने के लिए VBS स्क्रिप्ट का उपयोग करें:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\path\to\your\batchfile.bat" & Chr(34), 0
Set WshShell = Nothing
एक संपादक के ऊपर लाइनों को कॉपी करें और .VBS एक्सटेंशन के साथ फाइल को सेव करें।