जवाबों:
आप पहले से ही अपना उत्तर पा सकते हैं क्योंकि यह कुछ समय पहले आपने पूछा था। लेकिन मैंने कुछ ऐसा ही करने की कोशिश की जब रोर को कोड करना। मैं एक नए cmd विंडो में "रेल सर्वर" चलाना चाहता था, इसलिए मुझे एक नया cmd खोलने की आवश्यकता नहीं है और फिर से अपना रास्ता खोजना चाहिए।
मुझे पता चला कि इस तरह के स्विच का उपयोग करना था:
start cmd /k echo Hello, World!
इससे पहले कि "cmd" एक नई विंडो में एप्लिकेशन को खोलेगा और "/ K" "इको हैलो, वर्ल्ड!" पर अमल करेगा। नए cmd के बाद है।
आप कुछ समान के लिए / C स्विच का भी उपयोग कर सकते हैं।
start cmd /C pause
यह तब "पॉज़" को अंजाम देगा लेकिन जब कमांड हो जाए तो विंडो बंद कर दें। इस मामले में आपके द्वारा एक बटन दबाने के बाद। मुझे यह "रेल सर्वर" के लिए उपयोगी लगा, फिर जब मैंने अपने देव सर्वर को बंद कर दिया तो मुझे इसके बाद विंडो बंद नहीं करनी है।
अपनी बैच फ़ाइल में निम्नलिखित का उपयोग करें:
start cmd.exe /k "more-batch-commands-here"
या
start cmd.exe /c "more-batch-commands-here"
/ c स्ट्रिंग द्वारा निर्दिष्ट कमांड को बाहर करता है और फिर समाप्त करता है
/ k स्ट्रिंग द्वारा निर्दिष्ट कमांड को बाहर करता है लेकिन रहता है
cmd /?
अधिक विवरण के लिए cmd.exe प्रलेखन का उपयोग करें।
कमांड स्ट्रिंग का उचित स्वरूपण तर्कों में रिक्त स्थान के साथ थोड़ा अधिक जटिल हो जाता है। नीचे दिए गए उदाहरण देखें। कुछ उदाहरणों में नेस्टेड दोहरे उद्धरण चिह्नों के उपयोग पर ध्यान दें।
उदाहरण:
प्रोग्राम चलाएं और फ़ाइल नाम पैरामीटर पास करें:
CMD /c write.exe c:\docs\sample.txt
प्रोग्राम चलाएं और एक लंबा फ़ाइल नाम दें:
CMD /c write.exe "c:\sample documents\sample.txt"
कार्यक्रम पथ में स्थान:
CMD /c ""c:\Program Files\Microsoft Office\Office\Winword.exe""
कार्यक्रम पथ + मापदंडों में रिक्त स्थान:
CMD /c ""c:\Program Files\demo.cmd"" Parameter1 Param2
CMD /k ""c:\batch files\demo.cmd" "Parameter 1 with space" "Parameter2 with space""
डेमो 1 और डेमो 2 लॉन्च करें:
CMD /c ""c:\Program Files\demo1.cmd" & "c:\Program Files\demo2.cmd""
स्रोत: http://ss64.com/nt/cmd.html
यह बहुत आसान नहीं है।
सबसे अच्छा तरीका यह है कि आपकी स्क्रिप्ट का वह हिस्सा है जिसे आप "नई विंडो" में अलग-अलग .bat फ़ाइल में रखना चाहते हैं। यह अव्यवहारिक हो सकता है यदि उदाहरण के लिए आपको अपनी स्क्रिप्ट (चर, आदि) के बाकी हिस्सों से बहुत अधिक राज्य की आवश्यकता होती है। एक विकल्प यह है कि आपको जिन भी मूल्यों की आवश्यकता है उन्हें पास करें (उदाहरण के लिए संचालित करने के लिए) बैच फ़ाइल में:
start cmd.exe stuff.bat %this_dir%
यदि आपके पास संचारित करने के लिए राज्य की एक बड़ी राशि है, तो आप रनटाइम पर एक बैच फ़ाइल बनाने पर विचार कर सकते हैं:
set foo=Hello, World
set list_me=%userprofile%
set tmpdir=c:\windows\temp
set tmp=%tmpdir%\tmp.foo
del /q /f "%tmp%"
echo.echo %foo%>>"%tmp%"
echo.dir "%list_me%">>>"%tmp"
start cmd.exe "%tmp%"
del /q /f "%tmp%"
जाहिर है कि यह एक तुच्छ उदाहरण है।
उपरोक्त उत्तरों से मुझे मदद मिली। लेकिन अभी भी कुछ पता लगाना आवश्यक है। यहां एक उदाहरण स्क्रिप्ट है जिसका उपयोग मैं वेब विकास के लिए 3 प्रक्रियाएं शुरू करने के लिए करता हूं। इसके परिणामस्वरूप 3 खिड़कियां खुली रहती हैं, क्योंकि उन्हें लगातार चलाने की आवश्यकता होती है।
मानगो को विश्व स्तर पर मेरे पथ से जोड़ा गया है, इसलिए मुझे अन्य दो कार्यक्रमों के लिए सीडी की आवश्यकता नहीं है। बेशक आपकी फ़ाइलों का पथ अलग-अलग होगा, लेकिन उम्मीद है कि इससे मदद मिलेगी।
:: Start MongoDB
start cmd.exe /k "mongod"
:: cd app directory, and start it
cd my-app
start cmd.exe /k "npm run dev"
:: cd to api server, and start that
cd ../my-app-api
start cmd.exe /k "npm run dev"
स्टैक ओवरफ्लो में यहां सभी का धन्यवाद; यह समाधान उपरोक्त प्रश्न को हल करता है लेकिन इन कार्यों को स्वचालित रूप से चलाने के लिए बढ़ाया जाता है:
मुझे लगता है कि मेरे प्रोजेक्ट को "एंटीक्योरम" कहा जाता है ।
अपनी % USERPROFILE% निर्देशिका में एक "init.bat" फ़ाइल बनाएँ (एक cmd विंडो खोलें और कर्सर के बाईं ओर के पथ पर एक नज़र डालें, यह जानने के लिए कि% USERPROFILE% क्या है)
@echo off
cd C:/projects/rails3/antiquorum
if "%1" == "antiquorum" GOTO start
if "%1" == "worker" GOTO worker
if "%1" == "server" GOTO server
if "%1" == "" GOTO end
:start
start cmd /k %USERPROFILE%\init.bat worker
start cmd /k %USERPROFILE%\init.bat server
TIMEOUT 30
start "" "http://localhost:3000/"
GOTO end
:server
rails s
GOTO end
:worker
rake jobs:work
:end
एक नई कमांड लाइन विंडो प्रकार में: C:> init एंटीक्योरम
कोड दो और cmd विंडो और एक ब्राउज़र खोलता है। TIMEOUT ब्राउज़र में त्रुटियों से बचा जाता है।
The : स्टार्ट सेक्शन काम करता है। आप params टाइप करके अलग से कार्य 1,2 या 4 चला सकते हैं: सर्वर , कार्यकर्ता , या कोई भी "antiquorum" परियोजना की जड़ में खोले गए cmd को छोड़ने के लिए नहीं ।
का आनंद लें।
अगर मैं आपको सही तरीके से समझ रहा हूं तो आपकी बैट फाइल कमांड प्रॉम्प्ट खोलेगी और आपके संदेश को स्क्रीन पर प्रिंट करेगी।
cmd.exe hello world
उम्मीद है की यह मदद करेगा।
दो कमांड के बीच जोड़ने से दोनों कमांड निष्पादित होती है ।/k
in order
उदाहरण:
cmd /k echo "hello"
यह कमांड पहले खुलेगी command prompt
फिर echo "hello"
कमांड निष्पादित करें
cmd
। आप सिर्फ टाइप कर सकते हैंstart rails s
।