আমি কীভাবে .BAT স্ক্রিপ্টটি ডিবাগ করতে পারি?


97

.Bat স্ক্রিপ্ট দিয়ে পা রাখার কোনও উপায় আছে? জিনিসটি হ'ল, আমার কাছে একটি বিল্ড স্ক্রিপ্ট রয়েছে, যা অনেকগুলি অন্যান্য স্ক্রিপ্টকে কল করে এবং আমি দেখতে চাই যে সেগুলি কীভাবে আদেশ করা হয়েছে, যাতে আমি জানতে পারি যে আমাকে ঠিক কোথায় যেতে হবে এবং আমার সংশোধনগুলি যুক্ত করতে হবে ।


4dos এর একটি বিল্ড ইন ডিবাগার রয়েছে।

উত্তর:


70

.Bat ফাইলটি কার্যকর করার মাধ্যমে আমি পদক্ষেপ নিতে জানি না তবে আপনি ব্যবহার করতে পারেন echoএবং pauseডিবাগিংয়ে সহায়তা করতে পারেন।

ECHO
ব্যাচ ফাইলে একটি বার্তা প্রতিধ্বনিত করবে। যেমন ECHO হ্যালো ওয়ার্ল্ড কার্যকর হয়ে গেলে পর্দায় হ্যালো ওয়ার্ল্ড প্রিন্ট করবে। তবে, ব্যাচ ফাইলের শুরুতে @ECHO অফ ছাড়াই আপনি "ECHO হ্যালো ওয়ার্ল্ড" এবং "হ্যালো ওয়ার্ল্ড" পেয়ে যাবেন। অবশেষে, আপনি যদি ফাঁকা লাইন তৈরি করতে চান তবে ECHO টাইপ করুন। শেষে পিরিয়ড যুক্ত করা একটি খালি লাইন তৈরি করে।

PAUSE
চালিয়ে যেতে ব্যবহারকারীকে যে কোনও কী টিপতে অনুরোধ করুন।

সূত্র: ব্যাচ ফাইল সহায়তা

@ workmad3: উত্তরে echoকমান্ডটি নিয়ে কাজ করার জন্য আরও ভাল টিপস রয়েছে ।

আরেকটি সহায়ক সংস্থান ... ডিডিবি: ডস ব্যাচ ফাইল টিপস


4
আমার ধারণা এগুলি আমার একমাত্র বিকল্প।
Vhaerun

18

স্ক্রিপ্টগুলিতে কোনও 'প্রতিধ্বনি' বিবৃতি নেই তা নিশ্চিত করুন এবং আপনি যে কোনও মিস করেছেন তা পুনরায় সেট করতে প্রতিটি স্ক্রিপ্টকে কল করার পরে 'প্রতিধ্বনি' কল করুন।

কারণটি হ'ল যদি প্রতিধ্বনি চালু থাকে, তবে কমান্ড ইন্টারপ্রেটার প্রতিটি কমান্ড (প্যারামিটার প্রক্রিয়াজাতকরণের পরে) কার্যকর করার আগে আউটপুট দেয় will উত্পাদনে ব্যবহারের জন্য এটিকে সত্যই খারাপ দেখায়, কিন্তু ডিবাগিং উদ্দেশ্যে খুব দরকারী কারণ আপনি দেখতে পাচ্ছেন কোথায় আউটপুট ভুল হয়েছে।

এছাড়াও, নিশ্চিত হয়ে নিন যে আপনি কল করা ব্যাচ স্ক্রিপ্ট এবং প্রোগ্রামগুলির দ্বারা সেট করা ত্রুটিযুক্ত স্তরগুলি পরীক্ষা করছেন। মনে রাখবেন যে এটির জন্য .bat ফাইলগুলিতে 2 টি পৃথক পদ্ধতি ব্যবহৃত হয়। আপনি যদি কোনও প্রোগ্রাম বলে থাকেন, ত্রুটি স্তরটি% ERRORLEVEL% এ রয়েছে, যখন ব্যাচ ফাইলগুলি থেকে ত্রুটি স্তরটি ত্রুটি স্তরটি পরিবর্তন করা হয় এবং এর আশেপাশের% এর প্রয়োজন হয় না।


13

অনুরূপ উদ্বেগের মুখোমুখি হয়ে, আমি একটি তুচ্ছ গুগল অনুসন্ধানের সাথে নীচের সরঞ্জামটি পেয়েছি:

জেপিএসফ্টের " টেক কমান্ড " এর মধ্যে একটি ব্যাচ ফাইল আইডিই / ডিবাগার রয়েছে। তাদের সংক্ষিপ্ত উপস্থাপনা ভিডিও এটি দুর্দান্তভাবে প্রদর্শন করে।

আমি কয়েক ঘন্টা ধরে পরীক্ষার সংস্করণটি ব্যবহার করছি। এখানে আমার প্রথম নম্র মতামত:

  • একদিকে, এটি সত্যই ডিবাগ করার অনুমতি দেয় .বাট এবং। সিএমডি স্ক্রিপ্ট এবং আমি এখন নিশ্চিত যে এটি বেশ কিছু ক্ষেত্রে সহায়তা করতে পারে
  • অন্যদিকে, এটি কখনও কখনও অবরুদ্ধ হয় এবং আমাকে এটি মেরে ফেলতে হয়েছিল ... বিশেষত যখন সাবস্ক্রিপ্টগুলি ডিবাগ করা হয় (সর্বদা নিয়মিতভাবে হয় না) .. এটি কোনও "কল স্ট্যাক" বা "স্টেপ আউট" বোতামটি দেখায় না।

এটি একটি প্রচেষ্টা deverves


4
এটি সম্ভবত একটি মন্তব্য হওয়া উচিত
কাইলমিট

8
@ কাইলমিট আপনি দয়া করে ব্যাখ্যা করতে পারেন কেন? যেহেতু এটি অন্যদের থেকে স্বতন্ত্র সমাধান এবং এটি মূল প্রশ্নের উত্তর দেয়? এটি কোনও মন্তব্যে ফিট করার পক্ষে এটি যথেষ্ট সংক্ষিপ্ত হওয়ার কারণে নয়, এটির জন্য রয়েছে ..
মায়োবিস

4
আমি আসলে সম্ভবত এটি বোঝাতে চেয়েছিলাম যে এটি যে কোনও পথে যেতে পারে। তবে এটি একটি এলএমজিটিফাই উত্তর। থেকে সহায়তা কেন্দ্র উত্তর অধ্যায়: Always quote the most relevant part of an important link। লিঙ্কটি ছাড়াই, এই উত্তরটি দ্রবীভূত হয়, যা সম্ভবত খুব ভাল, তবে সাধারণত একটি পরীক্ষিত, মালিকানাধীন সফ্টওয়্যার সম্পর্কিত অ্যাডহক পরামর্শটি একটি মন্তব্যে সাধারণত সেরা ফিট করে। এটি পাশাপাশি ছেড়ে নির্দ্বিধায়।
কাইলমিত

8

আমি 'রানিং স্টেপস' (উইন 32) সফ্টওয়্যারটি ঠিক তেমনটি করতে দেখলাম যা আমি খুঁজছিলাম: http://www.steppingsoftware.com/

আপনি একটি ব্যাট ফাইল লোড করতে পারেন, ব্রেকপয়েন্টগুলি রাখতে পারেন / আউটপুট এবং পরিবেশের ভেরিয়েবলগুলি দেখার সময় এর মধ্য দিয়ে পদক্ষেপ শুরু করতে পারেন।

মূল্যায়ন সংস্করণটি কেবল 50 টি লাইনের মধ্য দিয়ে যেতে পারে ... কারও কি একই ধরণের কার্যকারিতা সহ একটি বিনামূল্যে বিকল্প আছে?


7
তারা সেই ডোমেনটি হারিয়েছে এবং সম্ভবত ব্যবসার বাইরে চলে গেছে। আপনি এখনও ওয়েব.আর্টিভ.আর.ইউ.ইউ.ইভি.আর.ইগ্রি.আর.ইউ.বি.2020121211043/http://… থেকে মূল্যায়ন সফটওয়্যারটি ডাউনলোড করতে পারেন তবে আর লাইসেন্স কিনতে পারবেন না।
twasbrillig

6

@ECHO OFF কে বের করে ফেলুন এবং আপনার ব্যাচ ফাইলটিকে সমস্ত আউটপুট একটি লগ ফাইলে পুনঃনির্দেশ করুন in

c:> yourbatch.bat (alচ্ছিক পরামিতি)> yourlogfile.txt 2> & 1

http://www.robvenderwoude.com/battech_debugging.php এ পাওয়া গেছে

আইটি ওয়ার্কস !! 2> এবং 1 ... ভুলে যাবেন না

WIZ


2

আমি একমাত্র উপায়টি ভাবতে পারি তা হল echoএস এবং pauseএস এর সাহায্যে কোডটি ছিটিয়ে দেওয়া ।


2

আপনি কি কোনও ফাইলে ফলাফলটি পুনরায় তৈরি করার চেষ্টা করেছিলেন? যাকে যাই.ব্যাটি> লগ.টিএসটি পছন্দ করুন

আপনাকে নিশ্চিত করতে হবে যে এক্ষেত্রে অন্য প্রতিটি লিখিত স্ক্রিপ্টটি >> লগ.টিএসটিএস্টের মতো ফাইলে লগইন করছে

এছাড়াও আপনি যদি সেই ব্যাচের ফাইলটির শুরুতে এবং শেষের দিকে একটি তারিখ / টি এবং সময় / টি রাখেন তবে আপনি সেই সময়টি পেয়ে যাবেন এবং আপনি আপনার স্ক্রিপ্টটি চলমান সময় এবং ক্রমটি ম্যাপ করতে পারেন।


ফাইলে ফলাফল লেখার ফলে তেমন কিছু হয় না, এমন অনেকগুলি স্ক্রিপ্ট বলা হয় যা ডেকে আনে এবং এছাড়াও অনেকগুলি এক্সিকিউটেবল থাকে যা সম্পাদিত হয়।
Vhaerun

4
অন্য সমস্ত স্ক্রিপ্ট এবং প্রোগ্রামগুলি স্টিডিনকে লিখলে তাদের সমস্ত বার্তাগুলি খুব লগ হয়। আপনি যদি কেবল ব্যাচটি কার্যকর করেন এবং আপনি প্রচুর বার্তাগুলি চলমান দেখতে পান তবে আপনি সেগুলি লগ ফাইলে পুনর্নির্দেশ করতে পারেন।
বিরি

1

অথবা .... অন্য .bat ফাইল থেকে আপনার মূল .bat ফাইলটিকে কল করুন এবং ফলাফলকে ফলাফলের ফলাফল হিসাবে আউটপুট করুন

runner.bat> mainresults.txt

যেখানে রানার.ব্যাট মূল .bat ফাইলটিকে কল করে

আপনার এখন প্রধান .bat ফাইলটিতে সম্পাদিত সমস্ত ক্রিয়া দেখতে হবে


0

cmd \kত্রুটিটি দেখতে আপনি আপনার স্ক্রিপ্টের শেষে ব্যবহার করতে পারেন । এক্সিকিউশন সম্পন্ন হওয়ার পরে এটি আপনার কমান্ড প্রম্পটটি বন্ধ করবে না


আসলে এটা cmd /K। যাইহোক, এর সাথে pauseকী হয়েছে?
aschipfl

0

বেশ ঘন ঘন সমস্যা একটি ব্যাচের স্ক্রিপ্টটি তার আইকনটিতে ডাবল ক্লিক করে চালিত হয়। যেহেতু হোস্টিং কমান্ড প্রম্পট ( cmd.exe) উদাহরণটিও ব্যাচ স্ক্রিপ্টটি শেষ হওয়ার সাথে সাথেই সমাপ্ত হয়, সম্ভাব্য আউটপুট এবং ত্রুটি বার্তাগুলি পড়া সম্ভব নয়।

এই জাতীয় বার্তাগুলি পড়ার জন্য, আপনি স্পষ্টভাবে একটি কমান্ড প্রম্পট উইন্ডোটি খোলার জন্য, প্রযোজ্য কার্যনির্বাহী ডিরেক্টরিটি চালুর জন্য এবং ব্যাচ স্ক্রিপ্টটি তার পথ / নাম টাইপ করে চালানো খুব গুরুত্বপূর্ণ।


-1

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


4
এটি একটি উত্তর না হিসাবে অনেক ভুল অনুমান করে তোলে। সম্ভবত সবচেয়ে বড় দুটি হ'ল ক) ব্যাচ ফাইলটি কনসোল আউটপুট উত্পাদন করে। এটি করার দরকার নেই, এবং খ) ব্যাচ ফাইলটি আসলে কাজ করছে
Leliel

@ লেলিয়েল, বিজ্ঞাপন এ) হ্যাঁ, ব্যাচ ফাইলটি কনসোল আউটপুট তৈরি করতে পারে বা নাও পারে, তবে আপনি যখন এটির আইকনটি ডাবল-ক্লিক করেন তখন আপনি তা আবিষ্কার করতে পারবেন না, তবে এটি চালানোর সময় এটি প্রদর্শিত cmd.exeহবে; বিজ্ঞাপন খ) আপনার দাবিটি ভুল, ব্যাচের ফাইলটিতে কাজ করতে হবে না, এমনকী মারাত্মক সিনট্যাক্স ত্রুটি হতে পারে যা সাধারণত কনসোল ত্রুটির বার্তা উত্পন্ন করে ...
aschipfl
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.