मुझे तीन संभावित कामकाज दिखाई देते हैं।
1) एकाधिक पैरामीटर के संयोजन के लिए लाइन का निर्माण।
@echo off
SETLOCAL EnableDelayedExpansion
set "line="
for %%a in ("line1"
"line2"
"line3"
"line4"
) do set line=!line!%%~a
echo !line!
2), प्रत्येक पंक्ति
@echo on
SETLOCAL EnableDelayedExpansion
set "line=line1 & x#"^
"line2 & a#"^
"line3 & b #"^
"line4 & c "
set "line=!line:#" "=!"
echo !line!
प्रत्येक पंक्ति में पहला अंतरिक्ष महत्वपूर्ण है के अंत में "बोली" लीविंग क्योंकि कैरट के रूप में बहु चरित्र काम करता है लेकिन यह भी निकल जाता है पहला चरित्र, तो एक उद्धरण भी बच जाएगा।
तो मैं लाइन बनाने के बाद अनैतिक # "" को प्रतिस्थापित करता हूं।
संपादित जोड़ा गया: 3) गायब उद्धरण
setlocal EnableDelayedExpansion
echo "A very long line I want to !"=!^
split into two lines"
मेरी राय में इस सबसे अच्छा तरह से, यह काम करता है के रूप में पार्सर पहले उद्धरण देख सकते हैं और इसलिए पिछले कैरट काम करेंगे यह के रूप में, है लगता है उद्धरण के बाहर होना प्रतीत होता है।
लेकिन यह !"=!
अभिव्यक्ति "=
नामक चर का विस्तार करेगी, लेकिन ऐसा एक चर नाम मौजूद नहीं हो सकता है (एक बराबर चिह्न केवल पहले वर्ण के रूप में हो सकता है) ताकि यह कुछ भी न हो।
आप सुरक्षित अभिव्यक्तियों को भी बना सकते हैं, वे हमेशा कोट्स से बाहर निकल जाएंगे, अगर कोई उद्धरण है या लाइन में नहीं है।
!"^"=!
echo This multiline works !"^"=!^
as expected
echo "This multiline works !"^"=!^
too"
आप देरी विस्तार से बचने चाहते हैं, आप भी एक -किसी-लूप की तरह
for %%^" in ("") do (
echo "This multiline works %%~"^
too"
)
उत्तर सरल नहीं है, लेकिन ये कुछ शांत चाल हैं! काश मैं कई upvotes हो सकता है। धन्यवाद! –
मुझे वास्तव में वास्तव में विधि # 1 पसंद है। क्या उस विधि पर कोई गॉचा है? – djangofan
यह '*? 'जैसे वर्णों में विफल रहता है, और क्योंकि लूप उन्हें वाइल्डकार्ड के रूप में उपयोग करने का प्रयास करता है। लेकिन फिर आप एक फोर/एफ लूप पर स्विच कर सकते हैं – jeb