Computer >> कंप्यूटर ट्यूटोरियल >  >> सॉफ्टवेयर >> सॉफ्टवेयर

Windows कमांड लाइन आउटपुट को टेक्स्ट फ़ाइल में रीडायरेक्ट करें

Windows पर आपके द्वारा चलाए जाने वाले कमांड या बैच जॉब के व्यवहार को लॉग करने और समस्या निवारण के लिए सबसे उपयोगी तरीकों में से एक है आउटपुट को फ़ाइल में रीडायरेक्ट करना।

हालांकि, कमांड लाइन आउटपुट को फ़ाइल में रीडायरेक्ट करने के कुछ अलग तरीके हैं। आपके द्वारा चुना गया विकल्प इस बात पर निर्भर करता है कि आप अपने कमांड आउटपुट को कैसे देखना चाहते हैं।

Windows कमांड प्रॉम्प्ट आउटपुट कैसे काम करता है

जब आप Windows कंसोल (कमांड प्रॉम्प्ट) में कोई कमांड टाइप करते हैं, तो उस कमांड का आउटपुट दो अलग-अलग स्ट्रीम में जाता है।

  • STDOUT: स्टैंडर्ड आउट वह जगह है जहां कमांड से कोई भी मानक प्रतिक्रिया जाती है। उदाहरण के लिए, DIR कमांड के लिए मानक प्रतिक्रिया एक निर्देशिका के अंदर फ़ाइलों की सूची है।
  • STDERR: स्टैंडर्ड एरर वह जगह है जहां कोई भी त्रुटि संदेश जाता है यदि कमांड में कोई समस्या है। उदाहरण के लिए, यदि निर्देशिका में कोई फ़ाइल नहीं है, तो DIR कमांड "File Not Found" को स्टैंडर्ड एरर स्ट्रीम में आउटपुट करेगा।

आप इन दोनों आउटपुट स्ट्रीम के लिए Windows में आउटपुट को फ़ाइल में रीडायरेक्ट कर सकते हैं।

स्टैंडर्ड आउटपुट को नई फ़ाइल में रीडायरेक्ट करें

कमांड के स्टैंडर्ड आउटपुट को फ़ाइल में रीडायरेक्ट करने के दो तरीके हैं। पहला तरीका है हर बार कमांड चलाने पर कमांड आउटपुट को एक नई फ़ाइल में भेजना।

ऐसा करने के लिए, कमांड प्रॉम्प्ट खोलें और टाइप करें:

dir test.exe > myoutput.txt

> कैरेक्टर कंसोल को बताता है कि आपके द्वारा प्रदान किए गए नाम की फ़ाइल में STDOUT आउटपुट करें।

जब आप इस कमांड को चलाते हैं, तो आप देखेंगे कि कमांड विंडो में त्रुटि के अलावा कोई प्रतिक्रिया नहीं है कि फ़ाइल मौजूद नहीं है।

ऐसा इसलिए है क्योंकि कमांड के लिए स्टैंडर्ड आउटपुट को myoutput.txt नामक फ़ाइल में रीडायरेक्ट किया गया था। फ़ाइल अब उसी निर्देशिका में मौजूद है जहां आपने कमांड चलाया था। स्टैंडर्ड एरर आउटपुट अभी भी सामान्य रूप से प्रदर्शित होता है।

नोट: कमांड चलाने से पहले कमांड प्रॉम्प्ट के लिए सक्रिय निर्देशिका बदलना सुनिश्चित करें। इस तरह आपको पता चल जाएगा कि आउटपुट फ़ाइलें कहां संग्रहीत हैं।

आप कमांड विंडो में "myoutput.txt" टाइप करके फ़ाइल में गए स्टैंडर्ड आउटपुट को देख सकते हैं। यह टेक्स्ट फ़ाइल को आपके डिफ़ॉल्ट टेक्स्ट फ़ाइल व्यूअर में खोलेगा। अधिकांश लोगों के लिए, यह आमतौर पर Notepad.exe होता है।

अगली बार जब आप वही कमांड चलाएंगे, तो पिछली आउटपुट फ़ाइल हटा दी जाएगी। नवीनतम कमांड के आउटपुट के साथ एक नई आउटपुट फ़ाइल फिर से बनाई जाएगी।

स्टैंडर्ड आउटपुट को उसी फ़ाइल में रीडायरेक्ट करें

क्या होगा यदि आप उसी फ़ाइल को ओवरराइट नहीं करना चाहते? दूसरा विकल्प है > के बजाय >> का उपयोग करके आउटपुट फ़ाइल में रीडायरेक्ट करना। इस उदाहरण के मामले में, आप टाइप करेंगे:

dir test.exe >> myoutput.txt

आपको वही आउटपुट दिखाई देगा (केवल त्रुटि)।

लेकिन इस मामले में, आउटपुट फ़ाइल को ओवरराइट करने के बजाय, यह कमांड नए आउटपुट को मौजूदा आउटपुट फ़ाइल में जोड़ देता है।

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

स्टैंडर्ड एरर को फ़ाइल में रीडायरेक्ट करें

जिस तरह आप स्टैंडर्ड आउटपुट को फ़ाइल में रीडायरेक्ट कर सकते हैं, उसी तरह आप स्टैंडर्ड एरर स्ट्रीम को भी फ़ाइल में आउटपुट कर सकते हैं।

ऐसा करने के लिए, आपको कमांड के अंत में 2> जोड़ना होगा, उसके बाद वह आउटपुट एरर फ़ाइल जिसे आप बनाना चाहते हैं।

इस उदाहरण में, आप कमांड टाइप करेंगे:

dir test.exe > myoutput.txt 2> output.err

यह स्टैंडर्ड आउटपुट स्ट्रीम को myoutput.txt में भेजता है, और स्टैंडर्ड एरर स्ट्रीम को output.err में। परिणाम यह है कि कोई भी आउटपुट स्ट्रीम कंसोल विंडो में प्रदर्शित नहीं होती।

हालांकि, आप output.err टाइप करके त्रुटि संदेश देख सकते हैं। यह फ़ाइल को आपके डिफ़ॉल्ट टेक्स्ट फ़ाइल व्यूअर में खोलेगा।

जैसा कि आप देख सकते हैं, कमांड से कोई भी त्रुटि संदेश एरर फ़ाइल में आउटपुट होता है। स्टैंडर्ड आउटपुट की तरह ही, आप पिछले चलाए गए कमांड से त्रुटियों में एरर जोड़ने के लिए >> का उपयोग कर सकते हैं।

सभी आउटपुट को एक ही फ़ाइल में रीडायरेक्ट करें

उपरोक्त सभी दृष्टिकोण कई फ़ाइलों का परिणाम देते हैं। एक फ़ाइल स्टैंडर्ड आउटपुट स्ट्रीम के लिए और दूसरी स्टैंडर्ड एरर स्ट्रीम के लिए।

यदि आप इन दोनों आउटपुट को एक ही फ़ाइल में शामिल करना चाहते हैं, तो आप ऐसा भी कर सकते हैं। ऐसा करने के लिए, आपको निम्न कमांड का उपयोग करके सभी आउटपुट को उसी फ़ाइल में रीडायरेक्ट करना होगा।

dir test.exe 1> myoutput.txt 2>&1

यह कमांड कैसे काम करता है:

  • स्टैंडर्ड आउटपुट को आउटपुट नंबर 1 द्वारा पहचानी गई आउटपुट फ़ाइल में निर्देशित किया जाता है।
  • नंबर 2 द्वारा पहचाना गया स्टैंडर्ड एरर आउटपुट, नंबर 1 द्वारा पहचानी गई आउटपुट फ़ाइल में रीडायरेक्ट किया जाता है।

यह एरर आउटपुट को स्टैंडर्ड आउटपुट के अंत में जोड़ देगा।

किसी भी कमांड के लिए सभी आउटपुट को एक फ़ाइल में देखने का यह एक उपयोगी तरीका है।

स्टैंडर्ड या एरर आउटपुट स्ट्रीम को साइलेंट करना

आप फ़ाइल के बजाय आउटपुट को NUL में रीडायरेक्ट करके स्टैंडर्ड आउटपुट या स्टैंडर्ड एरर को बंद भी कर सकते हैं।

उपरोक्त उदाहरण का उपयोग करते हुए, यदि आप केवल स्टैंडर्ड आउटपुट चाहते हैं और बिल्कुल भी स्टैंडर्ड एरर नहीं, तो आप निम्न कमांड का उपयोग कर सकते हैं:

dir test.exe 1> myoutput.txt 2>nul

इसका परिणाम पहले उदाहरण के समान आउटपुट फ़ाइल होगी जहां आपने केवल स्टैंडर्ड आउटपुट को रीडायरेक्ट किया था, लेकिन इस कमांड के साथ त्रुटि कंसोल के अंदर प्रतिध्वनित नहीं होगी। यह एरर लॉग फ़ाइल भी नहीं बनाएगा।

यह उपयोगी है यदि आपको किसी भी त्रुटि की परवाह नहीं है और आप नहीं चाहते कि वे उपद्रव बनें।

आप उपरोक्त किसी भी आउटपुट कमांड को BAT फ़ाइल के अंदर से चला सकते हैं और उस लाइन का आउटपुट आपके द्वारा निर्दिष्ट आउटपुट फ़ाइल में जाएगा। यह देखने का एक उपयोगी तरीका है कि BAT फ़ाइल के अंदर किसी भी कमांड को चलाने का प्रयास करते समय कोई त्रुटि हुई थी या नहीं।

  1. Windows 11 में फाइल एक्सप्लोरर कमांड बार को कैसे डिसेबल करें Windows 11 में फाइल एक्सप्लोरर कमांड बार को कैसे डिसेबल करें

    नए Windows ऑपरेटिंग सिस्टम के साथ UI और डिज़ाइन अपडेट की बाढ़ आई। सबसे महत्वपूर्ण डिज़ाइन परिवर्तनों में से एक, कम से कम मेरे लिए, फाइल एक्सप्लोरर में था। ऐसा लगता है कि Microsoft ने फाइल एक्सप्लोरर के शीर्ष पर दिखाई देने वाले पारंपरिक रिबन को हटा दिया है जिसमें कुछ बहुत ही उपयोगी फाइल ऑपरेशन थे। Wi

  1. विंडोज 10 के बाद कमांड लाइन में किए गए परिवर्तन विंडोज 10 के बाद कमांड लाइन में किए गए परिवर्तन

    विंडोज 10 में बहुत सारे परिवर्तन किए गए थे, लेकिन कुछ परिवर्तनों के बारे में ज्यादा बात नहीं की गई। उन परिवर्तनों में से एक का संबंध कमांड लाइन से है, और इसलिए हम उस पर ध्यान केंद्रित करने जा रहे हैं। विंडोज 10 में कमांड लाइन में सुधार अब, माइक्रोसॉफ्ट ने कमांड लाइन में कई नए परिवर्तन किए हैं, और

  1. कमांड लाइन से उबंटू को अपग्रेड कैसे करें कमांड लाइन से उबंटू को अपग्रेड कैसे करें

    उबंटू का अपडेट मैनेजर आपके इंस्टॉलेशन को एक नए प्रमुख रिलीज में अपग्रेड करना अपेक्षाकृत आसान बनाता है। उपयोगिता का ग्राफिकल इंटरफेस आपको एक चरण-दर-चरण विज़ार्ड के माध्यम से मार्गदर्शन करता है जिसका पालन करना आसान होना चाहिए। लेकिन ऐसे समय होते हैं जब आप ग्राफिकल उपयोगिता का उपयोग नहीं कर सकते - उदा