আমি কীভাবে আমার .bat ফাইলটিকে ত্রুটির পরে চালিয়ে যেতে পারি


30

আমার উইন্ডোতে একটি .bat ফাইল রয়েছে যা তিনটি কাজ করে

cmd1 arg1 arg2
cmd2 arg3 
cmd3 arg4 arg5 arg6

কখনও কখনও সেমিডি 1 ব্যর্থ হতে পারে এবং এটি ঠিক আছে, আমি cmd2 এবং cmd3 চালিয়ে চালিত করতে চাই। তবে আমার ব্যাটটি সেমিডি 1 এ থামছে। আমি কীভাবে এড়াতে পারি?

স্বচ্ছতার জন্য আপডেট করুন - এগুলি অন্য .bat ফাইল নয়, সেগুলি এক্সেল কমান্ড। আশা করি কেবল এটি অর্জনের জন্য আমাকে .bat ফাইলের একটি গাছ তৈরি করতে হবে না।


আপনি কমান্ডটি ব্যবহার করে শুরু করতে সক্ষম হবেন cmd /C
ডের হচস্টাপলার

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

উত্তর:


18

আরেকটি বিকল্প হ'ল এম্পারস্ট্যান্ড ( &) ব্যবহার করা

cmd1 & cmd2 & cmd3

যদি আপনি একটি ডাবল ব্যবহার করেন তবে এটি কেবল পূর্ববর্তী কমান্ডটি সফলভাবে সম্পন্ন হলে চালিত হয় ( %ERRORLEVEL%==0)

cmd1 && cmd2 && cmd3

যদি আপনি একটি ডাবল পাইপ ( ||) ব্যবহার করেন তবে এটি কেবলমাত্র পরবর্তী কমান্ডটি চালায় যদি পূর্ববর্তীটি একটি ত্রুটি কোড ( %ERRORLEVEL% NEQ 0) দিয়ে পূর্ণ হয়

cmd1 || cmd2 || cmd3


আরগস পাস করার সময় আমি কি এটি করতে পারি? আমি কেবল চেষ্টা করেছি এবং এটি কাজ করতে দেখেনি।
কনফিউজড

@ কনফিউজড নুব আমি সব সময় করি ... আমার একটি CHKDSKকমান্ড রয়েছে, যুক্তি সহ, এটি কার্যকর। আমি টাইপ check D: & check E: & check F:, এবং এটি কাজ করে। বিএটি ফাইলটিতে যুক্তিগুলির মধ্যে /perf /f /r /b /scanস্যুইচগুলি অন্তর্ভুক্ত রয়েছে
কানাডিয়ান লুক পুনরায় প্রতিষ্ঠিত মনিকা

2
ভাল একটা! বেশ কয়েকটি পুনরায় চেষ্টা কীভাবে প্রয়োগ করতে হবে সে সম্পর্কে আমার কাছে একটি ধারণা নিয়ে এসেছিল: সেমিডি || সেমিডি || ... সফল হওয়া অবধি পরবর্তী
সেন্টিমিডি

1
এটি দীর্ঘ স্ক্রিপ্টগুলি অপঠনযোগ্য করে তোলে, অন্য কোনও উপায় নেই?
জানু

1
@ কানাডিয়ানলুক ওয়েল ব্যাচটি উইন্ডোজ ব্যাচের কাঠামো। ইন্টারেক্টিভভাবে আপনি কীভাবে কয়েকশ কম্যান্ড চালাবেন? পাওয়ার শেলের আরও ভাল পদ্ধতির আছে? সেখানে যাওয়ার কি খারাপ?
জানু

11

অনুমান করা যায় যে সেমিডিএস হ'ল অন্যান্য .bat ফাইলগুলি কমান্ডগুলি এই জাতীয়ভাবে স্ট্যাক করে:

 call cmd1
 call cmd2
 call cmd3

10

এটি আমার পক্ষে কাজ করেছে:

cmd.exe /c cmd1 arg1
cmd2
...

এটি cmd.exeউইন্ডোজ কমান্ড ইন্টারপ্রেটারের একটি নতুন ইভেন্টে কমান্ডটি কার্যকর করতে ব্যবহার করে, সুতরাং একটি ব্যর্থ কমান্ড ব্যাচ স্ক্রিপ্টকে বাধা দেয় না। /cপতাকা অনুবাদক শীঘ্রই কমান্ড শেষ নির্বাহ যত বিনষ্ট বলে।

cmd2প্রথম কমান্ড ব্যর্থ হলেও কার্যকর করে। দেখুন cmd /?উইন্ডোজ কমান্ড আরও তথ্যের জন্য প্রম্পট থেকে।

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