উইন্ডোজ: আউটপুট দেখার সময় পাঠ্য ফাইলে কমান্ড লাইন পুনর্নির্দেশ


30

আমি উইন্ডোজে একটি সি প্রোগ্রাম লিখছি, আমার প্রিন্টফ কমান্ড লাইনে মুদ্রণ কল করে, এবং আমি জানি যে আমি এই সমস্ত আউটপুট একটি পাঠ্য ফাইলে পুনর্নির্দেশ করতে পারি:

myProgram.exe > mylog.txt

যাইহোক, আমি আউটপুটটিও কনসোলটিতে মুদ্রিত হয়ে সমস্ত পাঠ্য ফাইলে লগ করার জন্য দেখতে চাই see

এই কাজ করতে একটি উপায় আছে কি? আমি লগ ফাইল নিরীক্ষণের জন্য লেজ ব্যবহার করার কথা ভাবছিলাম।


আমি মাঝে মাঝে যা করেছি তা হ'ল আরেকটি সিএমডি প্রম্পট উইন্ডোটি খুলুন এবং বারবার মাইলগ.টিএসটিএস (বা মাইলগ.txt নোটপ্যাড করতে পারতেন না) কার্যকর করুন এবং দেখুন কীভাবে এটি বিকাশ লাভ করে। টি যদিও দেখতে দুর্দান্ত লাগে।
বার্লোপ


উত্তর:


19

উইন্ডোজ পাওয়ারশেলের একটি সরঞ্জাম রয়েছে যা এটি করতে পারে, teeইউনিক্স সরঞ্জামটির নাম অনুসারে এটি একই কাজ করে।

বিকল্পভাবে, teeউইন্ডোগুলির জন্য ইউনিক্সের পোর্ট রয়েছে:


3
পাওয়ারশেল একটি দুর্দান্ত টিপ, সেমিডি হতে পারে এমন লোকদের জন্য যা এখনও চালানো হয়নি! আনসুইটিল ব্যবহারের চেয়ে gnuwin32 ব্যবহার করা ভাল, আনক্সুইটালগুলি বরং পুরানো। gnuwin32 আরও নতুন এবং সম্ভবত অযৌক্তাগুলিতেও রয়েছে এবং এর আরও অনেকগুলি উপযোগিতা রয়েছে। অন্য কোথাও উল্লিখিত হিসাবে, gnuwin32 কোরিউটিলস টি আছে
বার্লপ

একই তৃতীয় পক্ষের কমান্ড-লাইন ব্যবহারকারী সিএমডায়ারে কাজ করে।
রুনি

1
এই উত্তরে superuser.com/a/273112/213743 ব্যাকনবিটস নির্দেশ করে যে পাওয়ারশেল টি লাইন-ওরিয়েন্টেড: এটি একটি লাইন আউটপুট দেয় না "যতক্ষণ না শেষের-লাইনের অক্ষরটি পৌঁছায়" নতুন লাইনের চরিত্রটি সম্মুখীন হয়। ব্যাকনবিটস পরামর্শ দেয় যে ইউনিক্স টি সর্বদা অবিলম্বে সামগ্রী ফরোয়ার্ড করে।
buzz3791

8

উইন্ডোজ এর অধীনে আমি ভাবতে পারি এটি করা:

myProgram.exe > mylog.txt & type mylog.txt

এটি আপনার প্রশ্নের কমান্ড উদাহরণের ভিত্তিতে তৈরি - যদি বাস্তবে আপনি আউটপুটটি সংযোজন mylog.txtকরতে চান তবে আপনি >>পরিবর্তে এটি ব্যবহার করতে চান >তবে typeপুরো লগ ফাইলটি মুদ্রণ করবেন, কেবল যা যুক্ত করা হয়েছিল তা নয়।

আপনি যদি GnuWin32 CoreUtils ডাউনলোড করেন তবে আপনি এটি করার জন্য ইউনিক্স পদ্ধতি ( teeকমান্ড) ব্যবহার করতে পারেন :

myProgram.exe | tee mylog.txt

এটি myProgram.exe এর আউটপুট লিখবে mylog.txtতবে একই সাথে এটি কনসোলে প্রদর্শিত হবে। আপনি যদি কেবলমাত্র যুক্ত করতে চান mylog.txtতবে আপনি -aপরামিতি টিতে দিতে পারেন।


2
টি সমাধানটি আরও ভাল দেখায়। আপনি যে অন্য জিনিসটির কথা উল্লেখ করেছেন তা যুগপত নয়।
বার্লপ 21

1
@ বারলপ - আমি সম্মত হলাম, প্রথম সমাধানটি কিছুটা কার্যকর নয় কারণ আপনি উইন্ডোজে স্থানীয়ভাবে তা করতে পারবেন না। টি এখানে কৌতুকটি দুর্দান্তভাবে করেছেন :)
গাফ

সহায়তার জন্য ধন্যবাদ, উর্ধ্বে দেওয়া, টি নিয়ে যাওয়া কিন্তু লেসমানা কয়েক মিনিট আগে পেয়েছিলেন যখন তিনি / তিনি
টিয়ের

যদি আপনি 'টাইপ' ছেড়ে যান তবে টাস্কটি শেষ হয়ে গেলে এটি ডিফল্ট সম্পাদক (আমার জন্য নোটপ্যাড) এ ফাইলটি খুলবে।
জোশ স্ট্রিলিং


0

ওপির পরামর্শ অনুসারে আমার কেবল অনুরূপ প্রয়োজন ছিল এবং লেজ ব্যবহৃত হয়েছিল:

>C:\Temp\Commands_Log.txt (
START tail.exe -f C:\Temp\Commands_Log.txt

Some_Commands
Other_Commands

echo.
echo ALL DONE HERE!
echo.
echo IT IS NOW SAFE TO CLOSE THIS WINDOW!
)

"> সি: \ টেম্প \ কমান্ড_লগ.টেক্সট" লগ ফাইল তৈরি করে এবং (প্রথম বন্ধনী) এর ভিতরে থাকা সমস্ত কমান্ড থেকে আউটপুট যুক্ত করে।

প্রথম কমান্ডটি লেজটি শুরু করতে হবে, যা একটি নতুন কমান্ড উইন্ডোতে খোলা হবে।

প্রতিধ্বনিটি অপরিচিত ব্যবহারকারীদের কাছে সবকিছু শেষ হয়ে গেলে তাদের জানাতে হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.