आप एक वास्तविक न्यूलाइन चरित्र बना सकते हैं और इसे एक चर के लिए असाइन कर सकते हैं।
setlocal EnableDelayedExpansion
set LF=^
rem TWO empty lines are required
echo This text!LF!uses two lines
न्यू लाइन सबसे अच्छा देरी विस्तार के साथ काम करता है, तो आप भी प्रतिशत विस्तार के साथ उपयोग कर सकते हैं, लेकिन तब यह थोड़ा और अधिक जटिल है।
set LF=^
rem TWO empty lines are required
echo This text^%LF%%LF%uses two lines
echo This also^
uses two lines
यह कैसे काम करता है?
देखभाल एक बचने वाला चरित्र है, यह अगले चरित्र से बच निकलता है और खुद को हटा दिया जाता है।
लेकिन यदि अगला चरित्र एक लाइनफीड है तो लाइनफीड भी हटा दिया जाता है और केवल अगला चरित्र प्रभावी रूप से बच निकला है (भले ही यह एक लाइनफीड भी हो)।
इसलिए, दो खाली लाइनों के लिए आवश्यक हैं, LF1 नजरअंदाज कर दिया है LF2 बच रहा है और LF3 "पंक्ति" खत्म करने के लिए आवश्यक है।
set myLinefeed=^<LF1>
<LF2>
<LF3>
संकेत:
यह न्यू लाइन चर परिभाषा के एक काफी अलग प्रारूप, उपयोग करने के लिए एक अनजाने आवश्यक खाली लाइनों का विलोपन से बचने के लिए अक्सर बेहतर है।
(SET LF=^
%=this line is empty=%
)
मैंने अक्सर खाली लाइनों में से एक को हटा दिया है और फिर मैंने हमेशा खोज की है कि मेरा प्रोग्राम अब और क्यों काम नहीं कर रहा है।
और पैरानोइड संस्करण व्हाइटसाइट्स या अन्य कचरे के लिए न्यूलाइन चर भी जांचता है।
if "!LF!" NEQ "!LF:~0,1!" echo Error "Linefeed definition is defect, probably multiple invisble whitespaces at the line end in the definition of LF"
FOR /F "delims=" %%n in ("!LF!") do (
echo Error "Linefeed definition is defect, probably invisble whitespaces at the line end in the definition of LF"
)
मैंने मूल रूप से इसे -1 के रूप में चिह्नित किया क्योंकि मुझे बाद में पता चला कि यह काम करता है लेकिन EnableDelayedExpansion (AKA! Var!% Var% के बजाय) के साथ नहीं। शायद बोल्ड में शीर्ष पर अपने उत्तर में जोड़ने पर विचार करना चाहें। इसलिए मैं इसे ऊपर उठा सकता हूं, जब तक कि उत्तर संपादित नहीं किया जाता है, मैं अपना वोट नहीं बदल सकता। ;) –