আপনার প্রশ্নে আপনি উল্লেখ করেছেন:
"... এটি কোনও ফাইলে আউটপুট রাখবে তবে বাস্তবে এটি সম্পাদন করবে না my আমার ক্ষেত্রে আমার এটি সম্পাদন করতে হবে এবং পরে রেফারেন্সের জন্য কোনও ফাইলে লগইন করতে হবে" "
যেহেতু আপনি বলেছেন যে প্রোগ্রামটি চলছে এবং এর আউটপুটটি ফাইলে রাখা হচ্ছে, আমি ভেবেছিলাম আপনি সম্ভবত "মৃত্যুদন্ড কার্যকর" না করে "প্রদর্শিত" বোঝাতে চেয়েছিলেন ।
যদি আপনি যা বোঝাতে চেয়েছিলেন এটি যদি এটি না হয় তবে সম্ভবত এটির আরও ভাল ব্যাখ্যা করা যদি সম্ভবত কিছু নমুনা আউটপুট দিয়ে দেওয়া হত helped
যাই হোক না কেন, আমি এই উত্তরটি পোস্ট করছি তবে এমন কেউ আছেন যারা এই প্রশ্ন / উত্তরকে সহায়ক মনে করেন।
সুতরাং, মূলত, এটি মনে হচ্ছে আপনি কোনও স্ক্রিপ্টের আউটপুট কোনও ফাইলের কাছে বন্দী করাতে চান এবং স্ক্রিপ্টটি চলমান অবস্থায় স্ক্রিপ্টের আউটপুট দেখতে সক্ষম হন।
(টিএল; ডাঃ সংস্করণ: উইন্টি ব্যবহার করুন :
script 2>&1 | wtee logfile.txt
)
এই পোস্টের জন্য, আমি একটি ছোট পরীক্ষা ব্যাচ ফাইলটি ব্যবহার করব, তবে আপনার স্ক্রিপ্টটি আপনার প্রয়োজন তত বড় এবং জটিল বা সহজ হতে পারে:
C:\>type a.cmd
@echo off
echo Command: "dir /b a*"
dir /b a*
echo.
echo Command: "dir /b non-existant-file"
dir /b non-existant-file
echo.
আমি যখন এই ব্যাচের স্ক্রিপ্টটি চালিত করি তখন এটি ঘটে:
C:\>a.cmd
Command: "dir /b a*"
a.cmd
Command: "dir /b non-existant-file"
File Not Found
লক্ষ্য করুন যে পরীক্ষার স্ক্রিপ্টে, "dir" কমান্ডের প্রথম প্রয়োগ কার্যকর হয়েছে এবং দ্বিতীয়টি ব্যর্থ হয়। আপনি যখন আপনার স্ক্রিপ্টটি চালাবেন তখন "ত্রুটি বার্তাগুলি" দিয়ে কী ঘটবে তা দেখানোর জন্য আমি এটিই করি।
যদি আমি স্ক্রিপ্টটি চালনা করি এবং আউটপুট ক্যাপচারের জন্য পুনর্নির্দেশ ( ">" ) ব্যবহার করি তবে আমি এটি দেখতে পাচ্ছি
C:\>a.cmd > log.txt
File Not Found
C:\>type log.txt
Command: "dir /b a*"
a.cmd
Command: "dir /b non-existant-file"
C:\>
স্ক্রিপ্টটি চালিত হওয়ার পরে স্ক্রিনে "ফাইল খুঁজে পাওয়া যায়নি" ত্রুটি বার্তাটি লক্ষ্য করুন, এবং আসলে ফাইলটিতে ধরা পড়েনি। কারণ ">" "আউটপুট " ক্যাপচার করে যা এসটিডিআউট প্রবাহে প্রেরণ করা হয়েছে। "ত্রুটি বার্তা" সাধারণত STDERR স্ট্রিমে প্রেরণ করা হয়।
ক্যাপচার "স্বাভাবিক আউটপুট" এবং "ত্রুটি বার্তা" করার জন্য, আপনার কাছে stderr স্ট্রিম, যার দ্বারা নির্দেশিত হয় ক্যাপচার প্রয়োজন "2" মধ্যে "2> & 1" কমান্ড এখানে:
C:\>a.cmd > log.txt 2>&1
C:\>type log.txt
Command: "dir /b a*"
a.cmd
Command: "dir /b non-existant-file"
File Not Found
ইউনিক্সে, একটি মানক কমান্ড রয়েছে: "tee"
"টি" কমান্ডটি ব্যবহার করে আপনি কোনও প্রোগ্রাম থেকে আউটপুট ক্যাপচার করতে পারেন এবং একই সাথে আউটপুটটিকে স্ক্রিনে প্রদর্শন করতে পারেন।
"টি" কমান্ডটি উইন্ডোজের সাথে মানসম্পন্ন নয়, তবে আপনি উইন্ডোজের জন্য এখানে "টি" এর একটি বিনামূল্যে সংস্করণ ডাউনলোড করতে পারেন:
উইন্টি । ডাউনলোড করা প্রোগ্রাম নামকরণ করা হয়: "wtee.exe"
।
আপনি নীচের মত "wtee.exe" প্রোগ্রাম ব্যবহার করুন।
এটি স্ক্রিপ্ট আউটপুটটিকে "log.txt"
আগের মতো ফাইল হিসাবে ক্যাপচার করবে এবং স্ক্রিপ্ট চলাকালীন স্ক্রিনে আউটপুট প্রদর্শন করবে:
C:\>a.cmd 2>&1 | wtee log.txt
Command: "dir /b a*"
a.cmd
Command: "dir /b non-existant-file"
File Not Found
C:\>type log.txt
Command: "dir /b a*"
a.cmd
Command: "dir /b non-existant-file"
File Not Found