2012-02-22 11 views
7

मैं इस तरह एक बैच स्ट्रिंग बनाने के लिए कोशिश कर रहा हूँ: > abcd_बैच स्ट्रिंग कड़ी

मैं एक चर soeid कहा जाता है, के रूप में ABCD मूल्य के साथ की है। तो मैं यही कर रहा हूं, लेकिन यह काम नहीं करता है।

set soeid=abcd 

set "val1=>" 
set "val2=_" 
set "str=%val1%%soeid%%val2%" 

echo %str% 
+5

"काम नहीं करता" के बाद आपको सबसे पहले टाइप करना चाहिए * यह * कैसे काम नहीं करता है इसका एक स्पष्टीकरण है। हम आपके दिमाग को नहीं पढ़ सकते हैं या यहां से आपकी स्क्रीन नहीं देख सकते हैं; हमें बस इतना करना है कि आप हमें अपने प्रश्न में क्या कहते हैं। अगर आप मदद चाहते हैं, तो आपको हमें यह बताना होगा कि आप क्या समस्या कर रहे हैं, और आपने जो भी प्रयास किया वह काम नहीं करता है। –

उत्तर

11

मुझे यकीन है कि यह ठीक काम कर रहा है। इसे साबित करने के लिए, मान को परिभाषित करने के बाद SET STR जोड़ें, और आपको सही मान दिखाई देगा।

जब आप मान को प्रतिबिंबित करने का प्रयास करते हैं तो समस्या तब होती है जब निष्पादित करने वाली रेखा बन जाती है: echo >abcd_> उद्धृत किया गया है या नहीं बच गए, तो यह बस कोई तर्क के साथ ECHO के ouput ले रहे हैं और "abcd_"

नाम की एक फ़ाइल के लिए यह रीडायरेक्ट हो रहा है आप उद्धरण देखते हुए, फिर कोई आपत्ति नहीं है echo "%str%" को अपनी लाइन बदल सकते हैं और यह काम करेगा।

अन्य विकल्प को सक्षम और विलंबित विस्तार उपयोग करने के लिए है (मैं यह सोचते हैं रहा हूँ यह एक बैच स्क्रिप्ट कोड है, और कमांड लाइन पर क्रियान्वित नहीं) जल्दी पर

setlocal enableDelayedExpansion 
set soeid=abcd 

set "val1=>" 
set "val2=_" 
set "str=%val1%%soeid%%val2%" 

echo !str! 

सामान्य %var% विस्तार होता है, जबकि दुभाषिया लाइन पार्स कर रहा है। देरी !var! विस्तार समाप्त होने से ठीक पहले अंत में होता है। बीच में कहीं भी पुनर्निर्देशन का पता लगाया जाता है। यही कारण है कि सामान्य विस्तार काम नहीं करता है - दुभाषिया विस्तारित > चरित्र को देखता है और इसे आउटपुट रीडायरेक्शन ऑपरेटर के रूप में व्याख्या करता है। देरी से विस्तार दुभाषिया से > चरित्र छुपाता है जब तक कि पुनर्निर्देशन का विश्लेषण नहीं किया जाता है।

देरी विस्तार के बारे में अधिक जानकारी के लिए, कमांड लाइन से SET /? टाइप करें और "अंत में, देरी वाले पर्यावरण परिवर्तनीय विस्तार के लिए समर्थन" के साथ शुरू होने वाले पैराग्राफ से शुरू करें।

+0

धन्यवाद बहुत अच्छा यह अभी ठीक काम किया। समस्या यह थी कि मैं echo% str% के बजाय echo! Str !. कृपया आप दोनों के बीच अंतर बता सकते हैं। – NewQueries

+0

@ न्यूक्विरीज़- मैंने एक स्पष्टीकरण के साथ अपना जवाब बढ़ाया – dbenham

संबंधित मुद्दे