কমান্ড প্রম্পট থেকে ত্রুটি বার্তাগুলি পুনর্নির্দেশ: STDERR / STDOUT
সারসংক্ষেপ
'>' চিহ্ন ব্যবহার করে কোনও অ্যাপ্লিকেশন থেকে আউটপুট পুনর্নির্দেশের সময়, ত্রুটি বার্তাগুলি এখনও স্ক্রিনে মুদ্রণ করে। এর কারণ ত্রুটি বার্তাগুলি প্রায়শই স্ট্যান্ডার্ড আউট স্ট্রিমের পরিবর্তে স্ট্যান্ডার্ড ত্রুটি প্রবাহে প্রেরণ করা হয়।
কোনও কনসোল (কমান্ড প্রম্পট) অ্যাপ্লিকেশন বা কমান্ডের আউটপুট প্রায়শই দুটি পৃথক স্ট্রিমে প্রেরণ করা হয়। নিয়মিত আউটপুট স্ট্যান্ডার্ড আউট (STDOUT) এ প্রেরণ করা হয় এবং ত্রুটি বার্তাগুলি স্ট্যান্ডার্ড ত্রুটি (STDERR) এ প্রেরণ করা হয়। আপনি যখন ">" চিহ্ন ব্যবহার করে কনসোল আউটপুট পুনর্নির্দেশ করবেন, আপনি কেবল STDOUT পুনর্নির্দেশ করছেন। STDERR পুনর্নির্দেশের জন্য আপনাকে পুনর্নির্দেশ প্রতীকটির জন্য '2>' নির্দিষ্ট করতে হবে। এটি দ্বিতীয় আউটপুট স্ট্রিমটি নির্বাচন করে যা STDERR।
উদাহরণ
কমান্ড dir file.xxx
(যেখানে file.xxx
অস্তিত্ব নেই) নিম্নলিখিত আউটপুট প্রদর্শন করবে:
Volume in drive F is Candy Cane Volume Serial Number is 34EC-0876
File Not Found
আপনি যদি NUL
ডিভাইসটি ব্যবহার করে আউটপুট পুনর্নির্দেশ করেন তবে আপনি dir file.xxx > nul
এখনও আউটপুটটির ত্রুটি বার্তা অংশ দেখতে পাবেন:
File Not Found
এতে ত্রুটি বার্তাটি পুনঃনির্দেশ করতে (কেবল) NUL
নিম্নলিখিত কমান্ডটি ব্যবহার করুন:
dir file.xxx 2> nul
অথবা, আপনি আউটপুটটিকে এক জায়গায় এবং অন্যদিকে ত্রুটিগুলি পুনর্নির্দেশ করতে পারেন।
dir file.xxx > output.msg 2> output.err
আপনি STDERR এর আউটপুটটিকে STDOUT এ পুনঃনির্দেশ করতে এবং তারপরে STDOUT থেকে কোনও ফাইলে প্রেরণ করে "এবং 1" কমান্ডটি ব্যবহার করে ত্রুটিগুলি এবং স্ট্যান্ডার্ড আউটপুটটিকে একটি ফাইলে মুদ্রণ করতে পারেন:
dir file.xxx 1> output.msg 2>&1