दो संभावनाएं हैं।
आप लगाना भूल %id%
में jstack
कॉल।
jstack %id% > jstack.txt
तो पूरी सही बैच फ़ाइल होनी चाहिए:
@echo off
set /p id=Enter ID:
echo %id%
jstack %id% > jstack.txt
और / या 2. आपने इसे कोड में डाल दिया (और प्रश्न में हमें बताना भूल गया) लेकिन जब आपने बैच फ़ाइल चलाई तो आपने एक आईडी टाइप करने के बजाय Enter कुंजी दबा दी (1234 कहो)।
जो हो रहा है, वह इन दो गलतियों का परिणाम है:
jstack
माना जाता है कि उस आईडी से जिसे आप आपूर्ति करते हैं।
लेकिन आपके मामले में (प्रश्न में आपके द्वारा दिए गए कोड के अनुसार) आपने इसे बिना किसी चर के कहा है। आप ने लिखा:
jstack > jstack.txt
इसलिए जब आप jstack
बिना किसी चर के साथ चलते हैं तो यह निम्न आउटपुट करता है:
Terminate batch file Y/N?
आपकी दूसरी गलती यह है कि आपने प्रोग्राम से पूछे जाने पर मान देने के बजाय Enter दबाया Enter ID:
:। यदि आप इस बिंदु पर एक आईडी डालते हैं, तो 1234 कहो, %id%
चर हमारे मूल्य 1234 में वह मूल्य बन जाएगा। लेकिन आपने मूल्य की आपूर्ति नहीं की और इसके बजाय Enter दबाया। जब आप चर को कोई मूल्य नहीं देते हैं, और यदि उस चर को पहले किसी और चीज के लिए सेट नहीं किया गया था, तो चर %id%
को set
कमांड के संकेत पर सेट किया जाता है !! तो अब %id%
सेट है Enter ID:
जो कि आपकी स्क्रीन पर गूँज रहा था जैसा कि बैच फ़ाइल में अनुरोध किया गया है उससे पहले आपको jstack कहा जाता है।
लेकिन मुझे संदेह है कि आपके पास DID jstack %id% > jstack.txt
आपके बैच फ़ाइल कोड में है %id
(और प्रश्न से गलती से इसे छोड़ दिया गया है), और यह कि आपने एक आईडी टाइप किए बिना एंट्री मार दी। बैच प्रोग्राम तब आईडी से गूँजता है, जो अब "एंटर आईडी:" है, और फिर भाग गयाjstack Enter ID: > jstack.txt
Jstack ने स्वयं इनपुट को प्रतिध्वनित किया, एक गलती का सामना किया और समाप्त करने को कहा।
और यह सब jstack.txt फाइल में लिखा गया था।