আপনি উইন্ডোজে যে কমান্ড বা ব্যাচ কাজগুলি চালান তার আচরণ লগ এবং সমস্যা সমাধানের সবচেয়ে দরকারী উপায়গুলির মধ্যে একটি হল আউটপুটকে একটি ফাইলে পুনঃনির্দেশ করা৷
যাইহোক, আপনি একটি ফাইলে কমান্ড লাইন লিখতে পুনর্নির্দেশ করতে পারেন কয়েকটি ভিন্ন উপায় আছে। আপনি যে বিকল্পটি চয়ন করেন তা নির্ভর করে আপনি কীভাবে আপনার কমান্ড আউটপুট দেখতে চান তার উপর৷
৷কিভাবে উইন্ডোজ কমান্ড প্রম্পট আউটপুট কাজ করে
আপনি যখন উইন্ডোজ কনসোলে (কমান্ড প্রম্পট) একটি কমান্ড টাইপ করেন, তখন সেই কমান্ড থেকে আউটপুট দুটি পৃথক স্ট্রীমে যায়।
- STDOUT :স্ট্যান্ডার্ড আউট যেখানে কমান্ড থেকে কোনো আদর্শ প্রতিক্রিয়া যায়। উদাহরণস্বরূপ ডিআইআর কমান্ডের জন্য আদর্শ প্রতিক্রিয়া হল একটি ডিরেক্টরির মধ্যে থাকা ফাইলগুলির একটি তালিকা৷ ৷
- STDERR :স্ট্যান্ডার্ড ত্রুটি হল যেখানে কোনো ত্রুটির বার্তা যায় যদি কমান্ডে কোনো সমস্যা হয়। উদাহরণস্বরূপ, যদি ডিরেক্টরিতে কোনো ফাইল না থাকে, তাহলে DIR কমান্ড স্ট্যান্ডার্ড ত্রুটি স্ট্রীমে "ফাইল নট ফাউন্ড" আউটপুট করবে।
আপনি এই উভয় আউটপুট স্ট্রীমের জন্য উইন্ডোজের একটি ফাইলে আউটপুট পুনঃনির্দেশ করতে পারেন।
নতুন ফাইলে স্ট্যান্ডার্ড আউটপুট রাইট রিডাইরেক্ট করুন
দুটি উপায়ে আপনি একটি ফাইলে একটি কমান্ডের স্ট্যান্ডার্ড আউটপুট পুনর্নির্দেশ করতে পারেন। প্রথমটি হল প্রতিবার কমান্ড চালানোর সময় একটি নতুন ফাইলে কমান্ড আউটপুট লিখতে পাঠান।
এটি করতে, কমান্ড প্রম্পট খুলুন এবং টাইপ করুন:
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 ফাইলের মধ্যে কোনো কমান্ডে কোনো ত্রুটি ছিল কিনা তা দেখার জন্য এটি একটি কার্যকর উপায়৷