سؤال كيف تنام في ملف دفعي؟


كيفية إيقاف التنفيذ لبعض الوقت في ملف دفعي Windows بين أمر والآخر؟


114
2017-09-26 19:45


الأصل


هل هذا يهدف إلى أن يصبح قانونيًا؟ إذا كان الأمر كذلك ، فقد يكون بعض النص التوضيحي مناسبًا. - John Gardeniers
"نص توضيحي" كما في؟ - Massimo
معظم ، إن لم يكن كل ، أسئلة قانونية رأيتها تشمل النص الذي يصف نية هذا السؤال. - John Gardeniers
أو بعض النصوص التي تشرح الوضع ... إنها في الغالب تساعد في تحسين محركات البحث ، ولكنها تساعد أيضًا في صياغة الإجابات المحتملة. - Chris S
كبار المسئولين الاقتصاديين تعمل على ما يرام. ضربني أولاً على بحث Google. - jbo5112


الأجوبة:


الطريقة الصحيحة للنوم في ملف دفعي هي استخدام timeout الأمر ، قدم في نظام التشغيل Windows 2000.

بالانتظار \ في الانتظار في مكان ما بين 29 و 30 ثانية:

timeout /t 30

ستتم مقاطعة المهلة إذا قام المستخدم بالضغط على أي مفتاح ؛ ومع ذلك ، يقبل الأمر أيضًا المفتاح الاختياري /nobreak، التي تتجاهل أي شيء قد يضغط عليه المستخدم بشكل فعال ، باستثناء ما هو صريح CTRL-C:

timeout /t 30 /nobreak

بالإضافة إلى ذلك ، إذا لم ترغب في أن يقوم الأمر بطباعة العد التنازلي على الشاشة ، فيمكنك إعادة توجيه الإخراج إليه NUL:

timeout /t 30 /nobreak > NUL

174
2017-09-26 19:45



لا يعمل الأمر timeout مع نظام التشغيل Windows XP حتى مع مجموعة أدوات موارد عام 2003 التي تم تثبيتها ولا يعمل الأمر sleep في Windows 7 بحيث لا يزال الأمر ping مفيدًا إذا كنت تستخدم ملف الدُفعات على كل من Win7 و WinXP.
لا تعمل المهلة في البرامج النصية غير التفاعلية: "خطأ: إعادة توجيه الإدخال غير مدعوم ، إنهاء العملية فورًا." لذلك في بعض الأحيان استخدام الاختراق مع "بينغ" هو المفضل. - iMysak


بما أنها تنطبق هنا أيضًا ، سأقوم بنسخها جوابي من موقع آخر.

إذا كنت ترغب في استخدام ping ، فهناك طريقة أفضل. سترغب في تنفيذ الأمر ping على عنوان غير موجود ، بحيث يمكنك تحديد مهلة ذات دقة ميلي ثانية واحدة. لحسن الحظ ، يتم تعريف مثل هذا العنوان في معيار (RFC 3330) ، وهو كذلك 192.0.2.x. هذا ليس مكوِّنًا ، إنه بالفعل عنوان لغرض وحيد غير موجود (قد لا يكون واضحًا ، ولكنه ينطبق حتى في الشبكات المحلية):

192.0.2.0/24 - يتم تعيين هذه الكتلة كـ "TEST-NET" لاستخدامها في      وثائق ومثال رمز. وغالبا ما تستخدم جنبا إلى جنب مع      أسماء النطاقات example.com أو example.net في المورد والبروتوكول      كابل بيانات. يجب ألا تظهر العناوين الموجودة داخل هذا الجزء على      شبكة الإنترنت العامة.

للنوم لمدة 123 مللي ثانية ، استخدم ping 192.0.2.1 -n 1 -w 123 >nul


8
2017-07-17 10:58



من فضلك لا تفعل ذلك ، حتى لو كان بعض الشيء أفضل من الأزيز عنوان حقيقي. Ping هو ببساطة خطأ أداة لهذا المنصب. - Massimo
Massimo ليس على الأرجح ما كان يقصد عمله :) ولكن أعتقد أنه حل جيد حتى الآن - إنه يعمل بشكل أفضل من المهلة في بعض السيناريوهات (على وجه الخصوص دقة أعلى). أيضا ، أصبح من المعروف جيدا ، لذلك فإن معظم الناس لن يكون مندهشا للغاية (أي الخلط) عندما يرون ذلك في ملف دفعي الخاص بك. - mafu
تم إنشاء ضمان الجودة هذا بالضبط أن نشير إلى الحل الصحيح للمشكلة، لأن هناك العديد من الأسئلة الأخرى المماثلة التي تم الإجابة عليها "بينغ استخدام العادل" أو kludges مماثلة. - Massimo
Massimo حسنًا! أعتقد أن لدينا وجهات نظر مختلفة. إذا كنت لا تمانع سأترك هذه الإجابة لأعلى حيث يبدو أنها أفضل من تنفيذ الأمر pinghost n المرات كما هو موضح في أغلب الأحيان. - mafu
timeout هو الحل الصحيح لأنظمة التشغيل التي يعمل عليها. بينغ هو الحل الوحيد الذي يعمل من 5.1-6.3. مع 25 ٪ من الأنظمة لا تزال في 5.1 ، المهلة ليست "الطريقة الصحيحة". - Wyrmwood


يمكنك أيضًا إدخال اختبار ping على المضيف المحلي. سيستغرق ذلك 4 ثوانٍ لإكماله (افتراضيًا). ويعتبر من kludge من قبل البعض ، لكنه يعمل بشكل جيد كل نفس.

الامر:
    بينغ 127.0.0.1


5
2017-09-26 20:10



Ehm ... كان الغرض الكامل من هذا السؤال بالضبط لتصحيح سؤالين آخرين لهما إجابتهما المقبولة ، ولكن لم يعد من الممكن تصحيحهما لأن OP لم يعد موجودًا. - Massimo
في حين أنها ستعمل فهي تعادل قيادة المسمار بمطرقة. قد تعمل أداة خاطئة ، لكنها ما زالت خاطئة. - voretaq7
MarkAllen وبعبارة أخرى ، ويندوز NT4 ، 95 ، 98 ، ME وكبار السن؟ - Chris McKeown
MarkAllen - من الناحية الفنية ، عليك أن تقلق بشأن ما إذا كنت تريد ذلك أم لا ping يأتي مع نظام التشغيل الخاص بك. إذا كنت قلقًا بما فيه الكفاية حول '95 '98 أو ME ، فيجب أن تكون على نفس القدر من القلق حول 6.22 التي لا تملكها ping إما - Mark Henderson♦
MarkHenderson انه من الاسهل (بالنسبة لي) أن يتذكر ما إذا كان إطلاق سراح معين من نظام التشغيل يدعم TCP / IP من أن نتذكر ما إذا كان يتضمن أمر لم أكن قد سمعت سابقا. أنت تعلم؟ - Mark Allen