एक और cmd.exe प्रॉम्प्ट के भीतर से एक नई cmd.exe विंडो बनाएँ


102

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

वहाँ कमांड लाइन पैरामीटर है cmd.exeकि एक और अलग संकेत खिड़की होगा?


1
cmd.exe एक CUI शेल है, GUI नहीं है। यह विंडोज़ नहीं बनाता है। यह कंसोल विंडो का उपयोग करता है जो कंसोल होस्ट प्रक्रिया, conhost.exe के एक उदाहरण द्वारा बनाई और प्रबंधित की जाती है। यदि कोई CUI प्रोग्राम सामान्य रूप से प्रारंभ किया जाता है, तो आधार क्लाइंट DLL (k गिने 32.ll या kernelbase.dll) में आरंभीकरण कोड माता-पिता के कंसोल को विरासत में देता है, यदि कोई हो, या एक नया कंसोल आवंटित करता है, जब तक कि यह सृजन ध्वज DETACHED_PROCESS(यानी कोई कंसोल) के साथ शुरू नहीं होता है । यदि यह सृजन ध्वज CREATE_NEW_CONSOLE(सीएमडी के startउपयोग के रूप में) के साथ शुरू होता है , तो आधार डीएलएल हमेशा माता-पिता को विरासत में देने के बजाय एक नया कंसोल आवंटित करता है।
एरिक सन

जवाबों:


201

मुझे लगता है कि यह काम करता है:

start cmd.exe

5
सुनिश्चित करें कि आपने "start / start" के लिए सभी विभिन्न विकल्पों की जाँच की है? / प्रतीक्षा और / मैं उपयोगी हो सकता है।
पीटर गफदर

46
fwiw, आपको शुरुआत के बाद 'cmd.exe' भी नहीं डालना है। बस 'शुरू' शब्द यह कर देगा।
जस्टजेफ

start / d <path> उन लोगों के लिए जो नई cmd विंडो के लिए पथ सेट करना चाहते हैं। यहाँ विस्तृत विवरण।
अनु.मो।

56

यहाँ आपके लिए आवश्यक कोड है:

start cmd.exe @cmd /k "Command"

10
क्या @cmdकर रहा है? क्या इसके लिए कुछ दस्तावेज हैं?
माईस

1
@सीधे आउटपुट को दबाता है जो सामान्य रूप से प्रॉम्प्ट में दिखाई देगा लेकिन कमांड अभी भी निष्पादित किया जाएगा।
थैलस

मैंने इसका उपयोग किया, यह काम करता है लेकिन यदि कीबोर्ड इंटरप्ट ctrl + c द्वारा रनिंग प्रोग्राम को मारने की कोशिश की जाती है, तो रनिंग प्रोग्राम बंद नहीं होता है। यह केवल तभी रुकता है जब आप नई खुली कमांड प्रॉम्प्ट विंडो को बंद करते हैं।
सचिन जी।

मल्टी-लाइन कमांड का उपयोग करके काम नहीं करता है ^। :( इससे निपटने का कोई तरीका?
user2173353

32

बस startकमांड प्रॉम्प्ट में टाइप करें :

start

इससे नई cmdखिड़कियां खुलेंगी ।


22
start cmd.exe 

एक अलग विंडो खोलता है

start file.cmd 

बैच फ़ाइल खोलता है और इसे अन्य कमांड प्रॉम्प्ट में निष्पादित करता है



2
START "notepad.exe"
echo Will launch the notepad.exe application
PAUSE

किसी भी cmd फ़ाइल प्रकार को बनाने के लिए, आपको केवल सामग्री को .bat, यानी के रूप में सहेजना होगा

@echo
TITLE example.bat
PAUSE
taskkill/IM cmd.exe

इसे एक "example.bat" फ़ाइल में बनाएँ, इसे सहेजें, फिर इसे खोलें और चलाएँ।


1

अपनी बल्लेबाजी फ़ाइल में सरल लिखें

@cmd

या

@cmd /k "command1&command2"

4
&नए प्रॉम्प्ट में कई कमांड निष्पादित करने के लिए धन्यवाद । मैं जोड़ना पसंद करता हूं exitइसलिए यह कमांड बंद होने पर प्रॉम्प्ट बंद कर देता है।
सिल्हारे

0

मैंने CCNET कार्य के अंत में डेमॉन प्रक्रिया / सर्वर चलाने वाली बैच फ़ाइल को निष्पादित करने की कोशिश की; क्रूज़कंट्रोल स्पॉन बनाने का एकमात्र तरीका प्रक्रिया के अंत की प्रतीक्षा किए बिना एक स्वतंत्र अतुल्यकालिक प्रक्रिया है:

  1. डेमॉन प्रक्रिया (सर्वर अनुप्रयोग) को चलाने के लिए एक बैच फ़ाइल बनाएँ
  2. CCNET कार्य के रूप में बैच फ़ाइल को चलाने के लिए कार्य अनुसूचक का उपयोग करें (schtasks.exe का उपयोग करके)

    schtasks.exe /create /F /SC once /ST 08:50 /TN TaskName /TR "c:/path/to/batchFileName.bat"
    
    • 08:50 HH: MM समय प्रारूप है

आपको ccnet के प्रारंभ में प्रक्रिया को मारने की आवश्यकता हो सकती है

पुनश्च: "प्रारंभ cmd.exe" का उपयोग करके चयनित उत्तर काम नहीं करता है; एक नया कमांड प्रॉम्प्ट वास्तव में बनाया गया है, लेकिन CCNET समाप्त होने के लिए इंतजार कर रहा है।

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