किसी को भी पता है कि क्या cmd स्क्रिप्ट है जो कि और / या कमांड लाइन टूल काम के लिए तैयार है?
किसी को भी पता है कि क्या cmd स्क्रिप्ट है जो कि और / या कमांड लाइन टूल काम के लिए तैयार है?
जवाबों:
नीचे तीन बैच फाइलें बनाएं। Main.bat ने 1.bat और 2.bat को लॉन्च किया
1.bat और 2.bat अस्थायी फाइल को लिखते हैं जिसके लिए main.bat चेक करता है। जब 1.bat और 2.bat काम कर रहे हैं, main.bat रिपोर्ट करता है कि प्रसंस्करण अभी भी हो रहा है। जब आप हिट करते हैं तो 1.bat या 2.bat की ओपन विंडो में एंटर करें, अस्थायी फाइल डिलीट हो जाती है, और प्रोग्राम बाहर निकल जाता है। यह .bat फ़ाइल के लिए प्रसंस्करण रोक का अनुकरण करता है। यदि आप यह 1 और 2.bat दोनों के लिए करते हैं, तो main.bat आपको रिपोर्ट करता है कि इन प्रक्रियाओं के लिए प्रोसेसिंग पूरी हो गई है। आप 1.bat और 2.bat कुछ भी कर सकते हैं जो आप चाहते हैं, इसलिए जब तक आप समाप्त होने पर अस्थायी फ़ाइल को साफ़ नहीं करते हैं। इस बिंदु पर main.bat कुछ भी वह कर सकता है जो आप चाहते हैं कि वह भी करे।
1.bat
echo %time% > 1.tmp
pause
del 1.tmp
exit
2.bat
echo %time% > 2.tmp
pause
del 2.tmp
exit
main.bat
@echo off
start "1" 1.bat
start "2" 2.bat
@ping -n 1 127.0.0.1 > nul
:loop
@echo Processing......
if not exist *.tmp goto :next
@ping -n 5 127.0.0.1 > nul
goto loop
:next
@echo Done Processing!
पर्याप्त सरल, बशर्ते प्रक्रियाओं को मानक इनपुट या आउटपुट की आवश्यकता न हो। कमांड लाइन से, या एक बैच फ़ाइल में:
process1 | process2 | process3 | process4
यह सभी चार प्रक्रियाएँ एक साथ चलेंगी, और जब तक वे सभी बाहर नहीं निकलते, वापस नहीं आएंगे। (संभावित अपवाद: यदि कोई प्रक्रिया स्पष्ट रूप से मानक आउटपुट को बंद कर देती है तो उसे माना जा सकता है जैसे कि वह बाहर निकल गया था। लेकिन यह असामान्य है, बहुत कम प्रक्रियाएं ऐसा करती हैं।)
मुझे यकीन नहीं है कि आप इस तरह से एक साथ कितनी प्रक्रियाएं शुरू कर सकते हैं। मैंने दस तक कोशिश की है।
ऐसा करने का एकमात्र तरीका अलग-अलग बैच फ़ाइलों को शुरू करना है (देखें start /?
) जो व्यक्तिगत कार्य चलाते हैं और पूरा होने पर एक पाठ फ़ाइल लिखते हैं। फिर, आप समय-समय पर जांचते हैं कि क्या टेक्स्ट फाइलें बनाई गई हैं।
आप पॉवर्सशेल स्टार्ट-जॉब cmdlet को देख सकते हैं। यह आपको ऐसा करने की अनुमति देनी चाहिए। यहाँ अधिक पॉवर्सशेल माइक्रोसॉफ्ट के पसंद का खोल है। यह cmd स्क्रिप्ट की तुलना में बहुत अधिक शक्तिशाली है और आपके समय के निवेश को अच्छी तरह से खराब करता है
या आप इसका उपयोग कर सकते हैं: http://www.out-web.net/?p=167
मैंने यह किया, यह काम करता है, हालांकि यह कभी-कभी होता है कि समाप्त प्रक्रिया के पीआईडी को तुरंत एक और विंडोज प्रोसेसस द्वारा फिर से उपयोग किया जाता है जो अभी शुरू हुआ था, और यह आपके प्रोसस के अंत का पता लगाता है खतरनाक / गलत।
मैं भी ऐसे ही काम की तलाश में था। उद्देश्य कई कमांड समानांतर चलाने और सभी समानांतर प्रक्रियाओं के आउटपुट (स्टडआउट और त्रुटि) निकालने का था। फिर किसी अन्य कमांड को पूरा करने और निष्पादित करने के लिए सभी समानांतर प्रक्रियाओं की प्रतीक्षा करें। BAT फ़ाइल के लिए एक नमूना कोड निम्नलिखित है, जिसे CMD में निष्पादित किया जा सकता है:
(
start "" /B cmd /c ping localhost -n 6 ^>nul
timeout /t 5 /nobreak
start "" /B /D "C:\users\username\Desktop" cmd /c dir ^> dr.txt ^2^>^&^1
start "" /B cmd /c ping localhost -n 11 ^>nul
timeout /t 10 /nobreak
) | pause
Echo waited
timeout /t 12 /nobreak
अंदर के सभी कथनों को ()
पहले निष्पादित किया जाता है, उनके पूरा होने की प्रतीक्षा करें, फिर अंतिम दो पंक्तियों को निष्पादित किया जाता है। के साथ भीख माँगने वाले सभी आदेशों को start
एक साथ निष्पादित किया जाता है।
ये लिंक सहायक हैं: /programming//a/43762349/9689416 और https://ss64.com/nt/stav.html