ব্যাচের ফাইলে কীভাবে ঘুমাব?


132

কমান্ড এবং পরেরটির মধ্যে একটি উইন্ডোজ ব্যাচ ফাইলে কিছুক্ষণের জন্য মৃত্যুদন্ড স্থগিত করা যায় কীভাবে?


এটি কি ক্যানোনিকাল হওয়ার উদ্দেশ্যে? যদি তা হয় তবে কিছু ব্যাখ্যামূলক পাঠ্য উপযুক্ত হতে পারে।
জন গার্ডেনিয়ার্স

2
"ব্যাখ্যা পাঠ্য" হিসাবে আছে?
ম্যাসিমো

2
বেশিরভাগ, যদি না হয় তবে আমি যে ক্যানোনিকাল প্রশ্নগুলি দেখেছি সেগুলির মধ্যে সেই প্রশ্নের উদ্দেশ্যটি বর্ণনা করার মতো পাঠ্য অন্তর্ভুক্ত রয়েছে।
জন গার্ডেনিয়ার্স

বা পরিস্থিতি ব্যাখ্যা করে কিছু পাঠ্য ... এটি বেশিরভাগই এসইওর সাথে সহায়তা করার জন্য, তবে সম্ভাব্য উত্তরগুলি ফ্রেম করতে সহায়তা করে।
ক্রিস এস

2
এসইও ঠিক কাজ করছে। গুগল অনুসন্ধানে আমার জন্য প্রথম হিট করুন।
jbo5112

উত্তর:


194

ব্যাচ ফাইলে ঘুমানোর সঠিক উপায় হ'ল timeoutউইন্ডোজ 2000 এ প্রবর্তিত কমান্ডটি ব্যবহার করা ।

29 এবং 30 সেকেন্ডের মধ্যে কোথাও অপেক্ষা করতে :

timeout /t 30

ব্যবহারকারী যদি কোনও কী চাপায় তবে সময়সীমা ব্যাহত হবে; তবে, কমান্ডটি /nobreakalচ্ছিক সুইচকেও গ্রহণ করে , যা ব্যবহারকারী স্পষ্ট করে বাদে চাপতে পারে এমন সমস্ত কিছুই কার্যকরভাবে উপেক্ষা করে CTRL-C:

timeout /t 30 /nobreak

অতিরিক্তভাবে, আপনি যদি পর্দায় কমান্ডটি তার কাউন্টডাউন মুদ্রণ করতে না চান, আপনি তার আউটপুটটিকে এখানে পুনর্নির্দেশ করতে পারেন NUL:

timeout /t 30 /nobreak > NUL

6
টাইমআউট কমান্ডটি ২০০৩ রিসোর্স কিট ইনস্টল করা সত্ত্বেও উইন্ডোজ এক্সপি-তে কাজ করে না এবং উইন্ডোজ in-তে স্লাইড কমান্ড কাজ করে না তাই আপনি উইন Win এবং উইনএক্সপি উভয়ই ব্যাচ ফাইলটি ব্যবহার করতে পারলে পিং কমান্ডটি এখনও কার্যকর হতে পারে।

12
সময়সীমা অ ইন্টারেক্টিভ স্ক্রিপ্টগুলিতে কাজ করে না: "ত্রুটি: ইনপুট পুনর্নির্দেশ সমর্থন করা যায় না, তত্ক্ষণাত প্রক্রিয়াটি প্রস্থান করা হয়" " তাই কখনও কখনও "পিং" দিয়ে হ্যাক ব্যবহার করা পছন্দ করা হয়।
iMysak

14

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

আপনি যদি পিং ব্যবহার করতে চান তবে আরও একটি ভাল উপায় আছে। আপনি এমন কোনও ঠিকানা পিং করতে চান যা অস্তিত্বহীন, তাই আপনি মিলিসেকেন্ড যথার্থতার সাথে একটি টাইমআউট নির্দিষ্ট করতে পারেন। ভাগ্যক্রমে, এই জাতীয় ঠিকানাটি একটি স্ট্যান্ডার্ড (আরএফসি 3330) এ সংজ্ঞায়িত করা হয় এবং এটি হয় 192.0.2.x। এটি মেক-আপ নয়, এটি সত্যই অস্তিত্বের একমাত্র উদ্দেশ্য সহ একটি ঠিকানা (এটি স্পষ্ট নাও হতে পারে, তবে এটি স্থানীয় নেটওয়ার্কগুলিতেও প্রযোজ্য):

192.0.2.0/24 - এই ব্লকটি ডকুমেন্টেশন এবং উদাহরণ কোডে ব্যবহারের জন্য "টেস্ট-নেট" হিসাবে বরাদ্দ করা হয়েছে। এটি প্রায়শই ডোমেইন নামগুলির সাথে مثال হিসাবে ..com বা বিক্রেতা এবং প্রোটোকল ডকুমেন্টেশনে উদাহরণ.net ব্যবহার করা হয়। এই ব্লকের ঠিকানাগুলি জনসাধারণের ইন্টারনেটে প্রদর্শিত হবে না।

123 মিলিসেকেন্ডের জন্য ঘুমাতে, ব্যবহার করুন ping 192.0.2.1 -n 1 -w 123 >nul


3
প্রকৃত ঠিকানাটি পিং করার চেয়ে কিছুটা ভাল হলেও দয়া করে এটি করবেন না । Pingসহজভাবে হয় ভুল কাজের জন্য টুল।
ম্যাসিমো

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

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

7
সময়সীমা হ'ল এটি যে অপারেটিং সিস্টেমগুলিতে কাজ করে তার সঠিক সমাধান। পিং হ'ল একমাত্র সমাধান যা 5.1-6.3 থেকে কার্যকর হয়। 25% সিস্টেম এখনও 5.1 এ থাকা অবস্থায়, সময়সীমা "সঠিক উপায়" নয়।
Wyrmwood

3
টাইমআউট হ'ল যে কোনও অপারেটিং সিস্টেমের জন্য ভুল সমাধান, কারণ এটি উইন্ডোজ 10-এ এমনকি মারাত্মকভাবে ভেঙে গেছে 10. ইনপুট পুনঃনির্দেশিত হওয়ার কারণে ব্যর্থ হওয়া একটি আদেশ কী?
হ্যারি জনস্টন

8

আপনি লোকালহোস্টে একটি পিং sertোকাতে পারেন। এটি সম্পূর্ণ করতে 4 সেকেন্ড সময় লাগবে (ডিফল্টরূপে)। এটি কারও কারও কাছে কুলডেজ হিসাবে বিবেচিত, তবে একইভাবে একইভাবে কাজ করে।

আদেশটি:
পিং 127.0.0.1


6
এহম ... এই প্রশ্নোত্তরটির পুরো উদ্দেশ্যটি ছিল অন্য দুটি প্রশ্নের হুবহু সংশোধন করা, যা এগুলিকে তাদের গ্রহণযোগ্য উত্তর হিসাবে চিহ্নিত করেছে, তবে আর আর সংশোধন করা যাবে না কারণ তাদের ওপি আর নেই।
ম্যাসিমো

6
যদিও এটি কাজ করবে এটি হাতুড়ি দিয়ে স্ক্রু চালানোর সমতুল্য। একটি ভুল সরঞ্জাম কাজ করতে পারে তবে এটি এখনও ভুল।
voretaq7

1
@ মার্ক অ্যালেন অন্য কথায়, উইন্ডোজ এনটি 4, 95, 98, এমই এবং আরও পুরনো?
ক্রিস ম্যাককাউন

5
@ মার্কএলেন - প্রযুক্তিগতভাবে আপনাকে তখন pingআপনার ওএসের সাথে আসে বা না আসে তা নিয়ে চিন্তা করতে হবে । আপনি '95 '98 বা আমাকে সম্পর্কে যথেষ্ট চিন্তিত থাকেন তাহলে আপনি যেমন সমানভাবে উদ্বিগ্ন 6.22 সম্পর্কে যা নেই হওয়া উচিত pingপারেন
মার্ক হেন্ডারসন

4
@ মার্কহেন্ডারসন ওএসের একটি বিশেষ রিলিজ টিসিপি / আইপি সমর্থন করে কি না তা মনে রাখার চেয়ে এটি সহজ (আমি আগে) শুনেছিলাম না এমন কমান্ড অন্তর্ভুক্ত রয়েছে কিনা তা মনে রাখা সহজ (আমার পক্ষে)। তুমি জান?
মার্ক অ্যালেন

2

দাবি অস্বীকার : এটি "আদর্শ" সমাধান নয়, সুতরাং আমাকে মাথায় মারতে বিরক্ত করবেন না যাঁরা তাদের পরামর্শ দিয়েছিল ping...

সম্ভব হলে, timeoutনিশ্চিতভাবে ব্যবহার করুন । তবে মন্তব্যে উল্লিখিত হিসাবে, এটি সর্বদা কোনও বিকল্প নয় (যেমন অ-ইন্টারেক্টিভ মোডে)। এর পরে, আমি সম্মত হই যে ping"কুলডেজ" সম্ভবত পরবর্তী সেরা বিকল্প, কারণ এটি খুব সহজ। এটি বলেছিল, আমি অন্য একটি বিকল্প অফার করছি ... কিছু ভিবি স্ক্রিপ্ট এম্বেড করুন ।

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

টেম্প স্ক্রিপ্ট তৈরি করতে, এটি চালনা করুন এবং তারপরে মুছুন, এখানে একটি লাইনার's স্ক্রিপ্টটি আপনার জন্য ঘুমাচ্ছে (এই উদাহরণে 3 সেকেন্ডের জন্য)।

echo WScript.Sleep 3000 > %temp%\sleep.vbs & cscript %temp%\sleep.vbs %sleepMs% //B & del %temp%\sleep.vbs

এখানে মূলত একই জিনিস, কিছুটা ভিন্নভাবে লেখা:

set sleepMs=3000 & set sleepVbs=%temp%\sleep.vbs & echo WScript.Sleep WScript.Arguments(0) > %sleepVbs% & cscript %sleepVbs% %sleepMs% //B & del %sleepVbs%

এবং পরিশেষে, তাহলে মত ping, CScriptনিজেই একটি সময়সীমার বিকল্প আছে! সুতরাং, আপনি যদি স্ক্রিপ্টে একটি অসীম লুপ প্রবেশ করেন, আপনি দোভাষীকে সময়কাল কার্যকর করতে দিতে পারেন। দ্রষ্টব্য, এটি একটি "ব্যস্ত" অপারেশন, যা সিপিইউ খায়, এবং তাই আপনি যখন WScript.Sleepপদ্ধতিটি ব্যবহার করতে পারেন তখন আমি এটির প্রস্তাব দিই না , তবে আমি এটি সম্পূর্ণতার জন্য ধারণামূলক বিকল্প হিসাবে উপস্থাপন করি:

set sleepSec=3 & set sleepVbs=%temp%\sleep.vbs & echo While True > %sleepVbs% & echo Wend >> %sleepVbs% & cscript %sleepVbs% //B //T:%sleepSec% & del %sleepVbs%

আপনি জানেন ... আপনি ফাইল লিখতে না পেরে পাওয়ারশেলে এটি করতে পারেন I
হ্যারি জনস্টন

হ্যাঁ, এটি সম্ভবত আরেকটি ভাল সমাধান, যদিও আমি বিশ্বাস করি এটি উইন্ডোজের পুরানো সংস্করণের সাথে আরও পিছনের দিকে সামঞ্জস্যপূর্ণ।
বুভিন জে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.