עזרה PowerShell Start-Sleep או ה-alias sleep
הוא cmdlet פשוט עם מטרה אחת; להשהות סקריפט. כאשר מופעל בקונסול ה-PowerShell, סקריפט שמופעל על ידי הקונסול או ב- PowerShell ISE, ה- cmdlet משהה סקריפט או מודול בסשן ה-PowerShell עד שעבר הזמן הדרוש בשניות או במילישניות.
ה- cmdlet הזה פשוט אך ניתן ליישם בכמה דרכים שונות שיאפשרו לנו ליצור סקריפטים מסודרים.
שימוש ב- Start-Sleep
שימוש ב- cmdlet Start-Sleep הוא קל מאוד מאחר ויש לו רק שני פרמטרים! נניח שאני רוצה להשהות את הסקריפט שלי כי אני מחכה לתהליך סביבתי אחר שירוץ. התהליך הזה לוקח כ-10 שניות, ואני צריך לוודא שהסקריפט שלי לא ימשיך לרוץ לפני שהאירוע החיצוני הזה יסתיים.
כדי להשהות את הסקריפט למשך 10 שניות, אפשר פשוט להשתמש ב- Start-Sleep -Second 10
. אם אני רוצה להיות מדויק, אפשר גם לציין את הזמן במילישניות כמו כן Start-Sleep -Milliseconds 10000.
דוגמה להקשר
אחד השימושים הנפוצים ביותר של cmdlet Start-Sleep הוא בתוך לולאת while
. לולאת while
היא בניין ב-PowerShell שמפעיל קוד כל עוד משהו אחר קורה. אחד השימושים הטובים ביותר של לולאת while
הוא לחכות שמשהו אחר יקרה. במקום לנחש כמה זמן תקח תהליך ולהפעיל את ה- cmdlet ישירות.
לדוג, אולי יש צורך לחכות שקובץ יופיע בתיקייה. אולי הקובץ הועבר שם על ידי תוכנה אחרת. לפני שהקובץ יהיה בתיקייה, יש להפעיל קצת קוד נגדו. דוגמה זו היא דוגמה מצוינת לשימוש בלולאת while
וב-Start-Sleep
.
בדוגמה למטה, הקוד שלי מחכה לקובץ C:\File.txt
להופיע. אם הייתה זו תסריט, הוא היה משהה את התסריט עד שהאירוע הזה התרחש. מבחינה טכנית, לא נצטרך ב-Start-Sleep
כדי לעשות זאת, אך בלעדיו, הקוד יכול להפגיע במחשב שלך. המהירות שבה הוא יכול לבדוק את הקובץ הזה יכולה להיות עד PowerShell!
אנו לא צריכים לבדוק את הקובץ הזה כל .0455 מילישניות. במקום זאת, עלינו להאט את הבדיקה ולבצע את המבחן רק כל חמישייה שנייה. להאט שלולוניות של while הוא שימוש מצוין בפקודת Start-Sleep
.
לדוגמה של שימוש ב-cmdlet זה עם סרגל התקדמות נחמד, תבדוק את זה.