2009-02-03 10 views
46

यह विंडोज में बैच फ़ाइल है।बीएटी फ़ाइल की कमांड विंडो छुपाएं जो एक और निष्पादित करता है .EXE फ़ाइल

यहाँ मेरी .bat फ़ाइल

@echo off 
copy "C:\Remoting.config-Training" "C:\Remoting.config" 

"C:\ThirdParty.exe" 

यह ठीक काम करता है को छोड़कर .bat फ़ाइल कमांड विंडो पूरे समय "Thirdparty" आवेदन चल रहा है खुला छोड़कर है।
मुझे बंद करने के लिए कमांड विंडो की आवश्यकता है।

मैं एप्लिकेशन के लिए शॉर्ट-कट का उपयोग करूंगा लेकिन मुझे पहले इस कॉपी कमांड को चलाने में सक्षम होना चाहिए (यह वास्तव में एप्लिकेशन के लिए कौन सा डेटा बेस और सर्वर उपयोग करता है)।

थर्डपार्टी एप्लिकेशन उपयोगकर्ता को डीबी या एप्लिकेशन सर्वर के स्रोत को बदलने की अनुमति नहीं देता है।

हम उपयोगकर्ताओं को परीक्षण वातावरण से उत्पादन वातावरण में बदलने की अनुमति देने के लिए ऐसा कर रहे हैं।

उत्तर

38

मेरे लिए काम करता है start का उपयोग करना:

@echo off 
copy "C:\Remoting.config-Training" "C:\Remoting.config" 
start C:\ThirdParty.exe 

संपादित करें: ठीक है, और अधिक बारीकी से देख, start नई विंडो शीर्षक के रूप में पहले पैरामीटर व्याख्या करने के लिए करता है, तो उद्धृत लगता है। इसलिए, यदि आपको अपने थर्डपार्टी.एक्सई के पथ को उद्धृत करने की आवश्यकता है तो आपको एक शीर्षक स्ट्रिंग भी प्रदान करनी होगी।

उदाहरण:

:: Title not needed: 
start C:\ThirdParty.exe 

:: Title needed 
start "Third Party App" "C:\Program Files\Vendor\ThirdParty.exe" 
+0

रहा था अब थर्डपार्टी ऐप शुरू नहीं होता है और मेरी कमांड विंडो खुलती रहती है। – JeffO

+0

हाँ, आप सही हैं। जब मैंने इसका इस्तेमाल किया तो मैंने अपने आवेदन के पथ को उद्धृत नहीं किया। कृपया मेरे संशोधित उत्तर पर एक नज़र डालें। –

+0

मेरे जवाब में सुधार के लिए पैट्रिक कफ के लिए धन्यवाद। मैं अभी भी एसओ के लिए नया हूं और अब तक यह नहीं पता था कि पर्याप्त प्रतिष्ठा आपको अन्य लोगों की पोस्ट को संपादित करने की अनुमति देगी ... –

3

मुझे वास्तव में ऐसा करने का अच्छा तरीका नहीं मिला है, इसलिए मैं केवल hstart नामक उपयोगिता का उपयोग करता हूं जो मेरे लिए करता है। यदि ऐसा करने के लिए एक साफ तरीका है, तो यह अच्छा होगा।

+0

एचएसटीएआरटी सीएमडी के प्रतिस्थापन के लिए एक उत्कृष्ट उपयोगिता है खिड़की, प्लस यह PowerShell और रूबी – SteveC

10

इस प्रयास करें:

@echo off 
copy "C:\Remoting.config-Training" "C:\Remoting.config" 
start C:\ThirdParty.exe 
exit 
+0

के साथ काम करने के लिए है C: \ ThirdParty.exe के आसपास उद्धरणों का उपयोग न करें और यह पूरी तरह से काम करेगा। –

+0

कूल, धन्यवाद पैट्रिक। – QAZ

+0

यह मेरे लिए बिल्कुल भी काम करता है, धन्यवाद। – sclarson

1

इस एक का उपयोग करें, ऊपर काम नहीं करता। मैं खिड़की सर्वर 2003.

+2

'उपरोक्त' को इंगित करने में आपको क्या त्रुटि मिली है? शायद ऐसा इसलिए है क्योंकि आप विंडोज सर्वर का उपयोग कर रहे हैं? – JeffO

6

का उपयोग start, ठीक काम करता है जब तक आप एक पटकथा भाषा का उपयोग कर रहे में परीक्षण किया है। सौभाग्य से, वहाँ एक रास्ता पायथन के लिए बाहर गया है - बस python.exe के बजाय pythonw.exe का उपयोग करें: किसी दूसरे उपयोगकर्ता के तहत

:: Title needed 
start "Great Python App" pythonw.exe "C:\Program Files\Vendor\App\application.py" 
1

यह रन:

:: Title not needed: 
start pythonw.exe application.py 

मामले में आप उद्धरण की जरूरत है, यह करते हैं। यह मानते हुए कि यह एक विंडोज बॉक्स है, निर्धारित कार्यों के लिए एक उपयोगकर्ता खाता बनाएँ। इसे उस उपयोगकर्ता के रूप में चलाएं। कमांड प्रॉम्प्ट केवल वर्तमान में लॉग इन किए गए उपयोगकर्ता के लिए दिखाएगा।

6

ग्रेट टिप। यह बैच फ़ाइलों के साथ काम करता है जो एक जावा प्रोग्राम भी चला रहे हैं।

start javaw -classpath "%CP%" main.Main 
+0

यह मेरे लिए उत्कृष्ट काम करता था, हालांकि मुझे बस इतना करना था कि 'javaw mainClass' को मेरी' .bat' फ़ाइल में सहेजें और यह बहुत अच्छा था! – rfoo

2

एक निष्पादन Batch2Exe http://www.f2ko.de/programs.php?lang=en&pid=b2e उपयोग करने के लिए बैच फ़ाइल संकलित करें। "अदृश्य विंडो" विकल्प का उपयोग करें।

+2

इस ऐप के बारे में पर्याप्त जानकारी नहीं थी ताकि मुझे कोशिश करने में मुझे सहज महसूस हो सके। सामान्य प्रश्न। डेमो, एक टैब के स्क्रीन शॉट से कुछ और। – JeffO

+0

सॉफ़्टपीडिया के बारे में अच्छी राय है: बैट टू एक्स कनवर्टर 1.6.0 - सॉफ़्टेटिया "100% साफ" पुरस्कार। यहां एक वैकल्पिक डाउनलोड लिंक है: http://www.softpedia.com/get/System/File-Management/Batch-To-Exe- कनवर्टर।shtml –

+0

मैंने इसका इस्तेमाल किया। यह मेरे एक कंप्यूटर पर काम करता था, लेकिन मैंने exe फ़ाइलों को दूसरे स्थानांतरित कर दिया और वे इस पर काम नहीं करते हैं। –

2

तुम मेरे silentbatch कार्यक्रम है, जो, एक .bat/.cmd स्क्रिप्ट चलेंगे कमांड प्रॉम्प्ट विंडो पूरी तरह के निर्माण को दबाने की कोशिश कर रहा में रुचि हो सकती (ताकि आप इसे दिखाई देते हैं और फिर गायब हो नहीं देखेंगे), और वैकल्पिक उत्पादन लॉग इन करें एक निर्दिष्ट फाइल के लिए।

2

आप एक वीबीएस स्क्रिप्ट बना सकते हैं जो विंडो को छिपाने के लिए मजबूर करेगा।

================... Set WshShell = WScript.CreateObject("WScript.Shell") obj = WshShell.Run("""C:\Program Files (x86)\McKesson\HRS Distributed\SwE.bat""", 0) set WshShell = Nothing '=====================================...

फिर, बैच फ़ाइल को क्रियान्वित करने के बजाय, स्क्रिप्ट को निष्पादित।

9

इस कोड के साथ एक .vbs फ़ाइल बनाएँ:।

CreateObject ("Wscript.Shell") भागो "your_batch.bat", 0, यह सच है

यह .vbs चलेंगे your_batch.bat छिपा।

मेरे लिए ठीक काम करता है।

+0

धन्यवाद, यह सही उत्तर है – dns

+0

यह वास्तव में उत्तर है। –

+0

यह मेरे लिए काम किया – user5155835

1

एक .bat फ़ाइल की कमांड विंडो बनाने के लिए जो .exe फ़ाइल जितनी जल्दी हो सके बाहर निकलती है, उस फ़ाइल से पहले @start लाइन का उपयोग करें जिसे आप निष्पादित करने का प्रयास कर रहे हैं।

(insert other code here) @start executable.exe (insert other code here)

आप @start executable.exe के साथ अन्य कोड का उपयोग करने की जरूरत नहीं है: यहाँ एक उदाहरण है।

1

या आप उपयोग कर सकते हैं:।

Start /d "the directory of the executable" /b "the name of the executable" "parameters of the executable" %1 (% 1 अगर एक फ़ाइल, उदाहरण के लिए, अपने एक्ज़िक्यूटेबल में पास किया जाता है, notepad.exe foo.txt, यहाँ% 1 "foo.txt" है

प्रारंभ कमांड के/बी पैरामीटर यह करता है: "एक नई कमांड प्रॉम्प्ट विंडो खोलने के बिना एप्लिकेशन प्रारंभ करता है। CTRL + C हैंडलिंग को अनदेखा किया जाता है जब तक कि एप्लिकेशन CTRL + C प्रसंस्करण को सक्षम न करे। एप्लिकेशन को बाधित करने के लिए CTRL + BREAK का उपयोग करें। " जो हम चाहते हैं वही है।

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