यदि बैट फ़ाइल के निष्पादन के दौरान फ़ोल्डर बंद है तो CMD विंडो बंद नहीं होगी


17

मेरे पास एक सर्वर 2012 R2 मानक 64 बिट वर्चुअल मशीन है जो अजीब तरह से काम कर रहा है। चमगादड़ फाइलें ठीक काम करती हैं और सीएमडी विंडो सामान्य रूप से बंद हो जाती है; लेकिन अगर बैट फाइल के निष्पादन के दौरान बैट फाइल वाला फोल्डर बंद हो जाता है तो वह समाप्त हो जाएगा लेकिन CMD विंडो बंद नहीं होती है। मैंने इसे सबसे सरल संभव बैट फाइल होने के बिंदु पर सरल बनाया है। इसमें 1 पंक्ति शामिल है। ठहराव

  1. विंडोज एक्सप्लोरर के साथ बैट फाइल वाले फोल्डर को खोलें
  2. उस पर डबल क्लिक करके बैट फाइल शुरू करें
  3. विंडोज एक्सप्लोरर विंडो बंद करें
  4. CMD विंडो में कोई भी कुंजी दबाएं
  5. बैट फ़ाइल समाप्त होने पर कर्सर अगली पंक्ति में चला जाता है
  6. CMD विंडो बनी हुई है

यह केवल एक मशीन पर होता है। क्या किसी को पता है कि यह क्यों हो सकता है? यह एक परीक्षण वीएम है और शायद बस पुनर्निर्माण किया जाना चाहिए, लेकिन यह मुझे उत्सुक है। धन्यवाद

मैंने अपनी साधारण बैट फ़ाइल को निम्नलिखित में से एक के साथ बदल दिया:

@assoc .bat
@for /F "tokens=1,* delims==" %%G in ('assoc .bat') do @ftype %%H
@reg query "HKLM\Software\Microsoft\Command Processor" /v AutoRun 2>NUL
@reg query "HKCU\Software\Microsoft\Command Processor" /v AutoRun 2>NUL
@wmic process where "caption = 'cmd.exe'" get CommandLine, ParentProcessId,     ProcessID
@echo please close Windows Explorer before continuing
@pause
@wmic process where "caption = 'cmd.exe'" get CommandLine, ParentProcessId,     ProcessID
@pause

परिणाम नीचे दिखाए गए हैं:

.bat=batfile
batfile="%1" %*



CommandLine                                      ParentProcessId  ProcessId
C:\Windows\system32\cmd.exe /c ""D:\test.bat" "  1608             8460

please close Windows Explorer before continuing
Press any key to continue . . .
CommandLine                                      ParentProcessId  ProcessId
C:\Windows\system32\cmd.exe /c ""D:\test.bat" "  1608             8460

Press any key to continue . . .

कमांड लाइन

04/13/2016 मैंने ऐसा करते समय टास्क मैनेजर को देखकर थोड़ा और पता लगाया। जब मैं बैट फाइल शुरू करता हूं, तो टास्क मैनेजर में 2 लाइनें दिखाई देती हैं - विवरण विंडो ... 1 cmd.exe के लिए और 1 conhost.exe के लिए। जब बैट खत्म हो जाता है तो cmd.exe चला जाता है, लेकिन conhost.exe शेष है। एक और बात जिस पर मैंने गौर किया है कि आपको विंडोज एक्सप्लोरर फोल्डर से बाहर निकलने की जरूरत नहीं है जैसा कि मैंने पहले कहा था ... आपको बस इतना करना है कि एक्सप्लोरर विंडो में कहीं भी क्लिक करें। यदि मैं एक्सप्लोरर विंडो में कहीं भी क्लिक नहीं करता हूं तो बैट फाइल के लिए सीएमडी विंडो सामान्य रूप से बंद हो जाती है और दोनों कार्य विवरण विंडो से गायब हो जाते हैं जैसा कि हम उम्मीद करेंगे।


2
दुर्भाग्य से मैं मदद नहीं कर सकता। लेकिन मुझे आपको एक अच्छी तरह से लिखित प्रश्न प्रदान करने के लिए पूरक करना है जो आपके मुद्दे का सटीक वर्णन करता है, मैं चाहता हूं कि पहली बार पोस्टर्स ने इस तरह से एक अच्छा लिखित प्रश्न लिखने के लिए समय लिया। बेशक मैं अपने विन 10 मशीन पर व्यवहार को पुन: पेश नहीं कर सकता। और जब से आप केवल एक विशिष्ट मशीन पर व्यवहार देखते हैं, किसी के लिए भी यह निदान करना मुश्किल हो सकता है कि क्या हो रहा है।
dbenham

थैंक्स @dbenham मैं आपके ज्ञान और आपके द्वारा दिए गए ज्ञान का सम्मान करता हूं। इसलिए मैं सुपर यूजर पर यहां पहली बार पोस्टर कर रहा हूं लेकिन मुझे पता है कि नए पोस्टर के बारे में आपका क्या मतलब है। हां, मैं मानता हूं कि यह संभावना नहीं है कि कोई नकल कर सकता है ... बस उम्मीद है कि शायद किसी और ने इसका सामना किया होगा। यह सिर्फ एक परीक्षण वीएम है इसलिए यह महत्वपूर्ण नहीं है। बस यह जानना चाहते हैं कि किसी ग्राहक की मशीन पर ऐसा होने की स्थिति में यह क्या है।
12 अगस्त को RGuggisberg

1
@RGuggisberg - सुनिश्चित करें कि आप अपने खातों को मर्ज करते हैं ताकि आप अपने प्रश्नों को संपादित कर सकें। आपको उन संकेतों को जोड़ने की ज़रूरत नहीं है जिन्हें आपने अपना प्रश्न संपादित किया है, सिस्टम आपके लिए ऐसा करता है, पूरी तरह से अनावश्यक।
रामहुंड

1
मेरे पास मेरे वीएम पर भी यही मुद्दा था, क्योंकि मैंने exitसीएमडी विंडो को बंद करने के लिए स्पष्ट रूप से कमांड का उल्लेख किया था। यह मदद हो सकती है।
मंजेश

1
क्या आपने यह निर्धारित करने के लिए संसाधन मॉनिटर की विश्लेषण प्रतीक्षा श्रृंखला सुविधा का प्रयास किया है जिस पर ConHost.exe प्रक्रिया प्रतीक्षा कर रही है?
Xtremity

जवाबों:


1

यह संभावना नहीं है लेकिन आपको लगता है कि सभी संभावित चीजों से इंकार कर दिया है। निम्नलिखित दो रजिस्ट्री प्रविष्टियों की जाँच करें कि क्या उनमें कुछ भी शामिल है:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor

या

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor

हर बार जब आप एक बैच फ़ाइल चलाते हैं, तो उसमें कुछ भी कहा जाता है, और यदि ऐसा है तो cmd /kइस व्यवहार का कारण होगा।


धन्यवाद ... वह भी नहीं है। यह सिर्फ एक परीक्षण मशीन है, इसलिए मैं अब इसका पता लगाने की कोशिश नहीं कर रहा हूं।
21

0

क्या आपने यह कोशिश की है?

@echo off
rem some code
pause
cls
exit

समान चीजें, लेकिन खुद को रोककर बाहर निकलने की अनुमति देता है।

इसके अलावा, आप सब कुछ के सामने @ क्यों डाल रहे हैं? बाकी कमांड्स से पहले सिर्फ @echo का इस्तेमाल क्यों नहीं किया गया?


हां .. पहले ही कोशिश कर चुका हूं। @ प्रस्तावना पर सहमत हैं। आमतौर पर मैं यही करता हूं। इसके लिए कोई फर्क नहीं पड़ता। शायद वहाँ था कि आदेशों को देखने के लिए कुछ प्रारंभिक परीक्षण के लिए।
RGuggisberg
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.