ব্যাচ ফাইলে শেষ কমান্ডের প্রস্থান কোড কীভাবে চেক করবেন?


69

উইন্ডোজে একটি ব্যাচ ফাইলের অভ্যন্তরে আমি এই জাতীয় 7-জিপ ব্যবহার করি :

...\right_path\7z a output_file_name.zip file_to_be_compressed

আমি কীভাবে প্রস্থান কোডটি পরীক্ষা 7zকরে যথাযথ পদক্ষেপ নিতে পারি?


উত্তর:


78

1 এর চেয়ে বড় বা সমান কোনও রিটার্ন কোডের জন্য পরীক্ষা করুন:

if ERRORLEVEL 1 echo Error

অথবা

if %ERRORLEVEL% GEQ 1 echo Error

বা 0 এর সমান রিটার্ন কোডের জন্য পরীক্ষা করুন:

if %ERRORLEVEL% EQU 0 echo OK

আপনি GOTOযেখানে দেখান সেখানে যেমন আপনি অন্যান্য কমান্ড ব্যবহার করতে পারেন echo


আমি আপনার কোড চেষ্টা করেছিলাম। আমি নিম্নলিখিত ত্রুটি পেয়েছি:0 was unexpected this time.
মিশা মোরোশকো

2
@ মিশা: আপনি প্রথমে যেভাবে পোস্ট করেছেন তাতে শতভাগ চিহ্ন নিয়ে চেষ্টা করে দেখতে পারেন। এগুলি ছাড়া এটি ব্যবহার করে দেখুন বা আমি যুক্ত অন্যান্য সংস্করণগুলি ব্যবহার করে দেখুন।
ডেনিস উইলিয়ামসন

2
%ERRORLEVEL%একটি ত্রুটি ঘটেছে যদিও 0 যেখানে ক্ষেত্রে পাওয়া গেছে । %ERRORLEVEL%একটি সিএমডি ফাইল চেক করার সময় ঘটেছিল । চেষ্টা করেও start /waitকাজ হয়নি। একমাত্র কাজটি হয়েছিলif errorlevel 1 (...)
অ্যালিকেলজিন-কিলাকা

4
সচেতন থাকুন, ত্রুটিযুক্ত পরিবেশ কোনও পরিবেশের পরিবর্তনশীল নয়সমস্যাগুলি এবং সূক্ষ্মতার একটি ভাল সংক্ষিপ্তসার এখানে ।
নিক ওয়েস্টগেট

নেতিবাচক রিটার্ন কোডগুলি সনাক্ত করতে সমর্থন করার NEQপরিবর্তে আমি কি ব্যবহারের পরামর্শ দেব EQU? উইন্ডোজ এক্সপি যদি তা করে তবে কোনও ধারণা নেই, তবে এটি আধুনিক উইন্ডোজের একটি জিনিস…
বিনকি

10

এটি আপনার কাছে আসলে কার্যকর হয়: App1.exe কল -> .bat যা চলে -> app2.exe

অ্যাপ 2 ত্রুটি-বিচ্যুতি 1 প্রদান করে ... তবে আপনাকে এটি .bat এ ধরতে হবে এবং এটিকে অ্যাপ 1 এ পুনরায় উত্থাপন করতে হবে ... অন্যথায় .bat ত্রুটিযুক্ত খায় এবং অ্যাপ 1 কখনই জানে না।

পদ্ধতি:

.বাট ইন:

app2.exe
if %ERRORLEVEL% GEQ 1 EXIT /B 1

এটি ত্রুটিযুক্ত করার জন্য অ্যাপ 2 এর পরে একটি চেক। যদি> 0 হয়, তবে .bat প্রস্থান করে এবং কলিং অ্যাপ 1 এর জন্য 1 এ ত্রুটিযুক্ত সেট করে।


4
এটি আরও ভাল হতে পারে যদি আপনি একই ত্রুটিটি অ্যাপ 1 এ ফিরে আসেন। আমি এই চেষ্টা না, কিন্তু এটা কাজ করা উচিত: if %ERRORLEVEL% GEQ 1 EXIT /B %ERRORLEVEL%
ভিক্টর ফোনিক

2
কমপক্ষে উইন্ডোজে,% ERRORLEVEL% একটি নেতিবাচক সংখ্যা হতে পারে (উদাহরণস্বরূপ আমার কাছে এমন একটি প্রোগ্রাম রয়েছে যা ত্রুটিতে -1 প্রদান করে)। IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%একটি ভাল বিকল্প হতে পারে। তবে প্রোগ্রামটি ত্রুটিগুলিতে কী ফিরিয়ে দেয় তা আপনার সত্যিই জানতে হবে। কিছু প্রোগ্রাম বিশেষ ধরণের সাফল্যের জন্য নির্দিষ্ট কিছু শূন্য কোড দেয়।
ইউরো মিশেলি

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