यदि आप सीएलआई पर हैं, तो आप जो भी चाहते हैं, उसके लिए एक लूप का उपयोग न करें:
for /F "delims=" %a in ('dir') do @echo %a && echo %a >> output.txt
लूप के लिए विंडोज सीएमडी पर महान संसाधन: https://ss64.com/nt/for_cmd.html
यहाँ की कुंजी सीमांकक (डेलिम्स) स्थापित कर रही है, जो आउटपुट की प्रत्येक पंक्ति को तोड़ देगी, कुछ भी नहीं। इस तरह यह सफेद-स्थान के डिफ़ॉल्ट पर नहीं टूटेगा। % एक एक मनमाना पत्र है, लेकिन इसका उपयोग "डू" सेक्शन में किया जाता है, ठीक है ... प्रत्येक पंक्ति में पार्स किए गए वर्णों के साथ कुछ करें। इस मामले में हम अपने चयन की एक फ़ाइल बनाने या जोड़ने (>>) के लिए 2 इको कमांड निष्पादित करने के लिए ampersands (&&) का उपयोग कर सकते हैं। डीओ आदेशों के इस आदेश को सुरक्षित रखने के लिए, यदि फ़ाइल लिखने में कोई समस्या है, तो हम कम से कम पहले कंसोल को प्रतिध्वनि प्राप्त करेंगे। पहली प्रतिध्वनि के सामने साइन (@) कंसोल को इको-कमांड दिखाने से रोकता है, और इसके बजाय केवल कमांड का परिणाम प्रदर्शित करता है जो कि वर्णों को% a में प्रदर्शित करना है। अन्यथा आप देखेंगे:
ड्राइव में एक्सो वॉल्यूम [x]
ड्राइव में विंडोज वॉल्यूम है [x] विंडोज है
अद्यतन: / एफ खाली लाइनों को छोड़ देता है और केवल फिक्स प्रत्येक पंक्ति में एक चरित्र को जोड़ने के उत्पादन को पूर्व-फ़िल्टर करने के लिए है (शायद कमांड खोजने के माध्यम से लाइन-संख्याओं के साथ)। सीएलआई में इसे हल करना त्वरित या सुंदर नहीं है। इसके अलावा, मैंने STDERR को शामिल नहीं किया है, इसलिए यहाँ गलतियाँ भी हैं:
for /F "delims=" %a in ('dir 2^>^&1') do @echo %a & echo %a >> output.txt
त्रुटि संदेश पुनर्निर्देशित करना
उनके बाद प्रतीकों से बचने के लिए देखभाल (^) होती है, क्योंकि कमांड एक स्ट्रिंग है जिसकी व्याख्या की जा रही है, जैसा कि कहने का विरोध किया गया है, इसे सीधे कमांड-लाइन पर दर्ज करना है।