উইন্ডোজ ব্যাচ ফাইলে কীভাবে অসীম লুপ তৈরি করবেন?


160

এটি মূলত যা আমি ব্যাচ ফাইলে চাই। আমি যখনই "বিরতি" দিয়ে যাবার জন্য কোনও কী চাপলাম তখনই আমি "ডু স্টাফ" পুনরায় চালাতে সক্ষম হতে চাই।

while(true){
    Do Stuff
    Pause
}

দেখে মনে হচ্ছে কেবলমাত্র forলুপ উপলব্ধ রয়েছে এবং whileব্যাচে কোনও লুপ নেই । তখন আমি কীভাবে অসীম লুপ তৈরি করব?


4
আপনি কি উইন্ডোজ / ডস ব্যাচের ফাইল সম্পর্কে জিজ্ঞাসা করছেন?
ঠাকাল

হ্যাঁ, অস্পষ্ট হওয়ার জন্য দুঃখিত, আমি ওপিতে একটি সংযোজন করব।
সোমবার 14'12

1
+1 উফস, আমি অন্য উত্তরটি লক্ষ্য না করে পোস্ট করেছি!
পিএ

আপনি ব্যবহার করতে পারেন For Commandবা লিঙ্ক
বিজ্ঞানী_ 7

উত্তর:


289

পুরানো ভাল (?) ব্যবহার সম্পর্কে কীভাবে goto?

:loop

echo Ooops

goto loop

আরও দেখুন এই একটি আরো দরকারী উদাহরণস্বরূপ।


কোনও ভাল নয়: ডি কখনও কখনও দ্রুত তবে কখনই ভাল না: ডি ঠিক আছে
গোটোয়ের

আমি jave.web এর সাথে একমত, আপনার নীচের লুপ পরামর্শের জন্য ব্যবহার করা উচিত। আপনার কোডটিতে কখনও গোটো ব্যবহার করা উচিত নয় এমনকি এটি স্ক্রিপ্টিংও হয়। 80 এর দশকে GW বেসিক দিনগুলিতে ফিরে শীতল হয়েছিল।
ডুডলকানা

এবং সেমিডি প্রম্পট থেকে?
theonlygusti

13
আমি jave.web এর সাথে একমত নই - আপনি যদি এটি সঠিকভাবে ব্যবহার করেন তবে গোটোতে কোনও সমস্যা নেই। উদাহরণস্বরূপ, লুপটি অটো-রিস্যাভান্সের মধ্যে চালিত প্রোগ্রামটি নিশ্চিত করতে আমি এটি ব্যবহার করতে চলেছি যদি এটি কোনও কারণে মারা যায়। আমার প্রোগ্রামটি যদি কোনও কারণে তত্ক্ষণাত্ মারা যায় তবে সিপিইউ থ্র্যাশ করা বন্ধ করতে লুপে একটি ছোট অপেক্ষা করা বুদ্ধিমানের কাজ হতে পারে।
জন হান্ট

1
@ তিওনলিগুস্তি আপনার প্রত্যাশা মতো এক-লাইন কমান্ড হিসাবে কাজ করে না :lbl & echo Ooops & goto lbl; কিন্তু @Nicholi এর মন্তব্যে নীচের হিসাবে আছে :FOR /L (1,0,2) DO @echo Oops
JimB

77

উইন্ডোতে ব্যবহারের জন্য এক-লাইন কমান্ডে সীমাহীন লুপ cmd:

FOR /L %N IN () DO @echo Oops

এখানে চিত্র বর্ণনা লিখুন


7
ব্যাচের ফাইলটিতে এটি ব্যবহার করতে টাইপ করুন: ফর / এল %% এন ইন () ডিও @ ইচো উফস
ফিল রোগেনবাক

এটি একটি আন্ডার রেটেড উত্তর। ধন্যবাদ!
var firstName

63

0 এর বৃদ্ধি সহ 1 থেকে 10 পর্যন্ত গণনা করা একটি সত্যই অসীম লুপ, 10 এ
পৌঁছানোর জন্য আপনার অসীম বা আরও বেশি বৃদ্ধি প্রয়োজন।

for /L %%n in (1,0,10) do (
  echo do stuff
  rem ** can't be leaved with a goto (hangs)
  rem ** can't be stopped with exit /b (hangs)
  rem ** can be stopped with exit
  rem ** can be stopped with a syntax error
  call :stop
)

:stop
call :__stop 2>nul

:__stop
() creates a syntax error, quits the batch

আপনার যদি সত্যিই অসীম লুপের প্রয়োজন হয় তবে এটি কার্যকর হতে পারে কারণ এটি কোনও goto :loopসংস্করণের তুলনায় অনেক দ্রুত কারণ প্রারম্ভকালে ফর-লুপ পুরোপুরি একবার ক্যাশে হয়।


17
দুর্দান্ত কারণ এটি কেবল কমান্ড প্রম্পটে টাইপ করতেও কাজ করে। / এল% এন এর জন্য (1,0,2) @echo করুন "হাই ছেলেরা"
নিকোলি

আশা করি এই সমাধানটির আরও কিছুটা ব্যাখ্যা থাকুক।
Nelda.techspiress


4

এটি করার আরও একটি ভাল উপায়:

:LOOP
timeout /T 1 /NOBREAK 
::pause or sleep x seconds also valid
call myLabel
if not ErrorLevel 1 goto :LOOP

এইভাবে আপনি ত্রুটিগুলির যত্ন নিতে পারেন


1

লুপটি ব্যবহারের উদাহরণ এখানে:

echo off
cls

:begin

set /P M=Input text to encode md5, press ENTER to exit: 
if %M%==%M1% goto end

echo.|set /p ="%M%" | openssl md5

set M1=%M%
Goto begin

আমি উইন্ডোতে এমডি 5 হ্যাশে কোনও বার্তা এনক্রিপ্ট করতে চাইলে এটি ব্যবহার করা সহজ ব্যাচ (ওপেনসেল প্রয়োজনীয়), এবং প্রদত্ত সিআরটিএল + সি বা খালি ইনপুট ব্যতীত প্রোগ্রামটি নিরপেক্ষভাবে পুনরাবৃত্তি করবে।

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