2009-11-12 9 views
12

क्या बैच फ़ाइल में एक इको लाइन में एक नया लाइन वर्ण डालना संभव है?बैच फ़ाइल में एक गूंज रेखा में एक नया लाइन वर्ण डालना संभव है?

मूल रूप से मैं के बराबर करने के लिए सक्षम होना चाहता हूँ:

echo Hello\nWorld 

आप लिनक्स में आसानी से पर्याप्त यह कर सकते हैं, लेकिन मैं बाहर काम नहीं कर सकता है कि कैसे Windows में यह करने के लिए।

+2

http://stackoverflow.com/questions/132799/how-can-you-echo-a-newline -इन-बैच-फाइलें मुझे लगता है कि इसका जवाब है। – Andrew

+0

अहहा, हाँ, लगभग उसी उत्तर में मुझे – Benj

उत्तर

33

echo. एक खाली पंक्ति प्रिंट करता है।

उदाहरण:

echo Hello 
echo. 
echo world 

प्रिंट

Hello 

world 
+5

'echo.'' 20 गुना धीमा है ' echo ('और यह पूरी तरह से विफल रहता है जब कोई फ़ाइल एक्सटेंशन के बिना 'echo' नाम से मौजूद होती है। तो' echo (' सुरक्षित और तेज़ – jeb

+4

'गूंज ('डॉस 6.22 में काम नहीं करता है। (हालांकि यह शायद कम से कम दर्शक है इस बिंदु।) –

+0

@JIMDavis +1 DOS 6.22 संगतता –

-1

मुझे लगता है कि यह संभव नहीं है। आप केवल एसीआई-कैरेक्टर को आजमा सकते हैं: http://www.asciitable.com/ लेकिन यह शायद आपकी बैच-फ़ाइल को क्रैश कर देगा।

+0

ये मिला, मुझे इस पर जाना पड़ा, यह दुख से काम नहीं करता। – Benj

5

ahaha,

मुझे लगता है कि मैं बाहर काफी पास कुछ काम किया है ...

echo hello&echo.&echo world 

का उत्पादन:

हैलो

दुनिया

13

एक छोटे से प्रयोग करने के बाद मैंने पाया कि दो अलग-अलग पारित किए बिना इसे करना संभव है हो आदेशों के अनुसार How can you echo a newline in batch files? में वर्णित है। हालांकि इसे काम करने के लिए आपको एक टेक्स्ट एडिटर की आवश्यकता होगी जो सीआर से सीआर + एलएफ का अनुवाद नहीं करता है।

प्रकार:

@echo First Line 
तो

पर, एएलटी छोड़ने से पहले ALT कुंजी और प्रकार 10 संख्यात्मक कीपैड पर नीचे पकड़ NumLock साथ (आप संख्यात्मक कीपैड, नहीं शीर्ष पंक्ति संख्या कुंजी का उपयोग करना चाहिए)। यह एक सीआर चरित्र डालेगा। फिर दूसरी पंक्ति टाइप करें। अपने संपादक पर निर्भर करता है और कैसे यह सीआर + वामो के साथ तुलना में सीआर संभालती है आप प्राप्त कर सकते हैं:

@echo First Line◙Second Line 

या

@echo First Line 
Second Line 

यह कमांड लाइन से काम करता है और के रूप में इतने लंबे समय के एक बैच फ़ाइल में काम करेंगे टेक्स्ट एडिटर सीआर से सीआर + एलएफ का अनुवाद नहीं करता है (जो विंडोज/डॉस संपादक तब तक करते हैं जब तक आप उन्हें कॉन्फ़िगर नहीं करते)। यदि सीआर को सीआर + एलएफ में परिवर्तित किया गया है, या यदि आप केवल एलएफ का उपयोग करते हैं, तो दूसरी पंक्ति को एक नए कमांड के रूप में व्याख्या किया जाता है।

हालांकि, मैं नहीं देख सकते हैं क्यों इस बस से अधिक बेहतर होगा:

@echo First Line 
@echo Second Line 
+0

मजेदार, मैंने सोचा कि मैंने यह कोशिश की होगी, लेकिन मैंने अभी कोशिश की है और यह वास्तव में काम करता है। – Benj

+0

मुझे नहीं पता कि आपने कौन सी ओएस कोशिश की है, लेकिन आपका समाधान काम नहीं कर सकता है, क्योंकि _raw_ सीआर बैच पार्सर द्वारा पूरी तरह से हटा दिया गया है। सबसे अच्छे मामले में सीआर कर्सर को वापस ले जायेगा लाइन शुरू होती है, अगली पंक्ति – jeb

+0

@jeb पर नहीं: यह पूरी तरह से निर्भर करेगा कि कमांड शेल सीआर को कैसे संभालता है। मैंने इसे विंडोज cmd.exe में परीक्षण किया (क्योंकि इस तरह सवाल को टैग किया गया है), और जैसा कि बेंजा ने टिप्पणी की, यह उसके लिए काम किया। cmd.exe संभावित रूप से सीआर + एलएफ में अनुवाद करता है।अधिकांश टर्मिनल अनुकरणकर्ता कॉन्फ़िगरेशन द्वारा समान अनुवाद का समर्थन करेंगे, लेकिन आप सही हैं कि तकनीक आम तौर पर लागू नहीं होती है - लेकिन ऐसा नहीं था कि प्रश्न कैसे प्रस्तुत किया गया था। मैं इस बारे में चिंतित हूं कि कोई ऐसा क्यों करना चाहेगा, लेकिन वहां है! – Clifford

0

मैं इस बहुत जानकारीपूर्ण पाया, इसलिए

यह एक ठीक से स्वरूपित उपयोग संदेश प्रदान करता है प्रदान की जवाब का उपयोग कर एक बेहतर उदाहरण पोस्ट करने के लिए चाहता था

if "%1" == """" goto usage 

:usage 
echo USAGE: %0 [Set properties using -D flag] [Ant Task to Run] & 
echo.                & 
echo  Availble Command line properties      & 
echo  --------------------------------      & 
... 
17

इसे एक एकल गूंज के साथ हल किया जा सकता है।

इसके लिए आपको एक न्यूलाइन कैरेक्टर \n की आवश्यकता है। वहाँ echo

1) यह नमूना बहु कैरट का उपयोग आदेश में एक नई पंक्ति जोड़ने के लिए में एक नई लाइन को पाने के लिए कई तरीके हैं,
खाली पंक्ति की आवश्यकता है

echo Hello^ 

world 

2) अगला समाधान पहले एक चर बनाता है जिसमें एक सिंगल लाइन फीड कैरेक्टर होता है।

set \n=^ 


rem ** Two empty lines are required 

या एक थोड़ा संशोधित संस्करण

(set \n=^ 
%=DONT REMOVE THIS=% 
) 

साथ नई लाइन बनाने और देरी विस्तार

setlocal EnableDelayedExpansion 
echo Hello!\n!world 

के साथ इस चरित्र का उपयोग प्रतिशत के साथ एक लाइन फ़ीड चरित्र का उपयोग करने के विस्तार आपको एक और जटिल अनुक्रम बनाने की आवश्यकता है

echo Hello^%\n%%\n%world 

या आप New line hack

REM Creating a Newline variable (the two blank lines are required!) 
set \n=^ 


set NL=^^^%\n%%\n%^%\n%%\n% 
REM Example Usage: 
echo There should be a newline%NL%inserted here. 

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

+0

+1 इस questi लाने के लिए कब्र से वापस ;-) – Benj

+0

+1, तत्काल (प्रतिशत) विस्तार के साथ एक चर में लाइन-फीड का उपयोग करने की संभावना है; हालांकि, क्या विलंब-वापसी चरित्र को बिना किसी देरी के विस्तार के तरीके का विस्तार करने का कोई तरीका है? – aschipfl

+0

@aschipfl नहीं, यह संभव नहीं है, क्योंकि सभी कैरिज रिटर्न प्रतिशत विस्तार चरण के ठीक बाद हटा दिए जाते हैं और – jeb

2

गूंज। या गूंज (

खाली नई लाइन करेंगे। उम्मीद है कि यह उपयोगी है।

+1

से बचने का कोई तरीका नहीं है लेकिन यह सवाल नहीं है कि दो ग्रंथों के बीच एक नई पंक्ति कैसे जोड़नी है। – jeb

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