أمر Start-Sleep في PowerShell أو الاسم المستعار sleep
هو أمر بسيط بغرض واحد فقط؛ إيقاف تشغيل النص البرمجي مؤقتًا. عند تنفيذه في وحدة التحكم PowerShell أو النص البرمجي الذي يتم تنفيذه من خلال وحدة التحكم أو في بيئة تطوير PowerShell، يعلق الأمر ببساطة النص البرمجي أو الوحدة في جلسة PowerShell عن التشغيل حتى ينتهي الوقت المطلوب بالثواني أو الأجزاء النانوية من الثانية.
هذا الأمر بسيط ومع ذلك يمكن تطبيقه بعدة طرق تسمح لنا كمبرمجين بكتابة نصوص برمجية جيدة.
استخدام Start-Sleep
استخدام أمر Start-Sleep سهل للغاية لأنه في النهاية يحتوي فقط على معلمتين! لنفترض أنني أريد إيقاف تشغيل النص البرمجي لأنني في انتظار تشغيل عملية بيئية أخرى. تستغرق تلك العملية حوالي 10 ثوانٍ، وأحتاج إلى التأكد من أن النص البرمجي الخاص بي لا يستمر في التشغيل قبل انتهاء الحدث الخارجي.
لإيقاف التشغيل لمدة 10 ثوانٍ، أستخدم ببساطة Start-Sleep -Second 10
. إذا أردت أن أكون دقيقًا في الأمور، يمكنني أيضًا تحديد الوقت بالمللي ثانية باستخدام Start-Sleep -Milliseconds 10000.
سياق العملية
أحد أكثر الاستخدامات شيوعًا لهذا الأمر Start-Sleep هو داخل حلقة while
. حلقة while
هي بنية في PowerShell تنفذ الكود بينما يحدث شيء آخر. أحد أفضل الاستخدامات لحلقة while
هو الانتظار حتى يحدث شيء آخر. بدلاً من تخمين مدة استغراق عملية وتشغيل هذا الأمر مباشرةً.
على سبيل المثال، ربما تحتاج إلى الانتظار حتى يظهر ملف في مجلد ما. ربما يتم وضع هذا الملف هناك بواسطة برنامج آخر. عندما يكون الملف في المجلد، تحتاج إلى تشغيل بعض الشفرة ضده. هذا المثال هو مثال ممتاز على استخدام حلقة while
وStart-Sleep
.
في المثال أدناه، ينتظر الشفرة الخاصة بي ظهور ملف C:\File.txt
. إذا كان هذا في نص، فإنه سيعلق النص حتى يحدث هذا الحدث. تقنيًا، لا نحتاج إلى Start-Sleep
للقيام بذلك، لكن إذا لم يُستخدم، يمكن أن تعطّل هذه الشفرة جهاز الكمبيوتر الخاص بك. السرعة التي يمكن أن تقوم بها بالتحقق المستمر من هذا الملف ستكون بواسطة PowerShell!
لسنا بحاجة للتحقق من هذا الملف كل 0.0455 مللي ثانية. بدلاً من ذلك، يجب علينا تبطئة الفحص وتنفيذ الاختبار فقط كل خمس ثوانٍ. تبطئة حلقة while هو استخدام ممتاز لأمر Start-Sleep
.
لمثال على استخدام هذا الأمر مع شريط تقدم جميل، تحقق من هذا.