פקודות השהה והמתנה של קבצי אצווה: כיצד לשלוט בזרימת הסקריפטים שלך

Pqwdwt Hshh Whmtnh Sl Qbzy Zwwh Kyzd Lslwt Bzrymt Hsqryptym Slk



ב-batch scripting ב-Windows, המפתחים יכולים לשלוט בזרימת הסקריפטים שלך באמצעות טכניקות או שיטות שונות להכנסת הפסקות או המתנה. הפקודות 'השהה' ו'המתנה' הן שתי דרכים לשלוט בזרימת קבצי האצווה שלך. הפקודה 'השהה' עוצרת את הביצוע של קובץ אצווה תוך הצגת ההודעה 'לחץ על מקש כלשהו כדי להמשיך...'. קובץ האצווה אינו יכול לפעול עד שהמשתמש לוחץ על מקש. ביצוע קובץ האצווה מושעה למשך מספר השניות המצוין בהוראת ההמתנה.

פקודת השהיית קובץ אצווה

פקודת 'השהה' של קובץ אצווה עוצרת את ביצוע קובץ האצווה תוך הצגת ההודעה בשורת הפקודה. קובץ האצווה לא יפעל עד שהמשתמש ילחץ על מקש. הפקודה שעוצרת את הביצוע הבא מועילה. הפעלת קובץ האצווה ישירות ולראות את הפלט הרצוי מופיע על המסך מועיל.







התחביר של הפקודה 'השהה' הוא:



הַפסָקָה

בקש מהמשתמש קלט

הפקודה 'השהה' בסקריפט האצווה הבא מציגה את ההודעה 'הקש על מקש כלשהו כדי להמשיך...' כאשר המשתמש מריץ קובץ אצווה זה. לפני שקובץ האצווה עובר לפקודה 'dir', המשתמש חייב ללחוץ על מקש.



@הד כבוי

rem קובץ אצווה זה עוצר עבור המשתמש ללחוץ על מקש.

echo שלום, ברוכים הבאים להדגמת הפקודה PAUSE.

echo Script ממשיך לאחר ההשהיה.

הַפסָקָה

rem קובץ אצווה זה ממשיך עם הפקודה הבאה.

הד תודה לך!

אתה





כאשר המשתמש לוחץ על מקש כלשהו באמצעות המקלדת, תהליך האצווה הזה ממשיך:



פקודת המתנה של קובץ אצווה

הקוד שסיפקת הוא קובץ אצווה שפותח שתי תוכניות: פנקס רשימות ו-Paint. הקוד הוא כדלקמן:

@הד כבוי

echo Starting First Program.

START /B /WAIT notepad.exe

echo Notepad נפתח ברקע בהצלחה

echo Starting Second Program.

START /WAIT mspaint.exe

echo הצבע נפתח בהצלחה.

cmd /k

השורה הראשונה, '@echo off', מונעת מקובץ האצווה להציג את הפקודות תוך כדי ביצוען.

המשתמש פשוט מודיע שהתוכנית הראשונה מופעלת על ידי השורה השנייה שהיא 'הד מתחיל תוכנית ראשונה'.

השורה השלישית, 'START /B /WAIT notepad.exe', פותחת את תוכנית Notepad בחלון רקע וממתינה לסיום לפני שתמשיך. המתג '/B' אומר לפקודת START להפעיל את התוכנית בחלון רקע, והמתג '/WAIT' אומר לפקודת START להמתין עד שהתוכנית תסתיים לפני שתמשיך.

השורה הרביעית קוראת את ה-Echo Notepad. כאשר פנקס הרשימות נפתח בהצלחה ברקע, הוא רק מודיע למשתמש באמצעות הודעה.

השורה החמישית, 'הד מתחיל תוכנית שנייה', פשוט מציגה הודעה למשתמש שהתוכנית השנייה מופעלת.

השורה השישית, 'START /WAIT mspaint.exe', פותחת את תוכנית Paint בחלון רקע ואינה ממתינה לסיום לפני שתמשיך.

השורה השביעית, 'הד את הצבע נפתח בהצלחה', פשוט מציגה הודעה למשתמש שהצבע נפתח בהצלחה.

השורה השמינית, 'cmd /k', פותחת חלון שורת פקודה חדש ומשאירה את חלון שורת הפקודה הנוכחי פתוח.

שימוש בלולאה עבור עיכובים מותאמים אישית

אנו יכולים להשתמש בלולאה עבור עיכובים מותאמים אישית בתהליך האצווה. הנה דוגמא:

בדוגמה זו, ההודעה הראשונה מוצגת למשתמש כאשר קובץ אצווה זה מופעל. לאחר מכן ההודעה הראשונה מוצגת פעם נוספת לאחר תחילת לולאת 'עבור'. פקודת הזמן הקצוב עוצרת את קובץ האצווה למשך שנייה אחת לפני הצגת ההודעה השנייה. ההודעה הסופית מוצגת לאחר סך של 10 חזרות.

@הד כבוי

הד הדגמה של Delay באמצעות Loop

עבור /l  %%i ב-(1,1,10) do (

פסק זמן /t 1 /nobreak > nul

echo הודעה זו מוצגת לאחר %%i  שניות

)

echo הודעה זו הציגה עיכוב של 10 שניות.

שימוש בפסק זמן לעיכוב

פקודת הזמן הקצוב של קובץ אצווה משהה את ביצוע קובץ אצווה למשך מספר שניות קבוע מראש. התחביר ניתן כאן:

פסק זמן /t [/nobreak]

המתג '/t' מציין את משך הזמן בשניות להמתנה. מתג '/nobreak' משבית את לחיצות המקשים מהמשתמש כדי לשבור את ההשהיה.

ניתן להשתמש בפקודה 'פסק זמן' כדי:

  • דחה ביצוע של קובץ אצווה לפרק זמן קבוע מראש
  • מנע מפעולת קובץ אצווה להפריע על ידי המשתמש
  • צור חוויה ידידותית יותר למשתמש על ידי מניעת הצורך ללחוץ על מקש מהמשתמש כדי להמשיך

לדוגמה, קובץ האצווה הבא מושהה למשך 10 שניות:

@הד כבוי

echo שלום, ביצוע הסקריפט ממשיך לאחר 10 שניות של עיכוב

פסק זמן /t 10

הד תודה לך!

כפי שהודגם בצילום המסך הבא, טיימר פועל ומחכה שהמשתמש יפריע לפקודה 'פסק זמן' על ידי לחיצה על מקש כלשהו. אם המשתמש לוחץ על מקש כלשהו, ​​התהליך נעצר ועובר לפקודה הבאה בקובץ האצווה:

המשתמש בצילום המסך הבא קוטע את פקודת 'פסק זמן' לאחר 5 שניות, וכתוצאה מכך מוצג ההודעה 'תודה!' הוֹדָעָה:

צילום המסך הבא מראה כיצד 'תודה!' ההודעה נמשכת 10 שניות להדפיס על המסך אם משתמש הקצה לא מפריע להוראת הזמן הקצוב:

להלן הקוד המעודכן ששונה כך שיכלול את המתג ללא הפסקה שמונע ממשתמש הקצה להפריע לתהליך קובץ אצווה:

@הד כבוי

rem קובץ אצווה זה מושהה למשך 10 שניות

echo שלום, ביצוע הסקריפט ממשיך לאחר 10 שניות של עיכוב

פסק זמן /t 10 /nobreak

rem לאחר 10 שניות פקודה זו תוצג במסך ההנחיות

הד תודה לך!

הנה הפלט של הקוד הקודם:

שורת הפקודה מבקשת מהמשתמש להקליד Y או N אם המשתמש משתמש בפקודה 'CTRL+C'. אם המשתמש לוחץ על Y, עבודת אצווה זו תופסקת:

הפקודות 'השהה', 'המתנה' ו'פסק זמן' הן הדרכים לשלוט בזרימת הסקריפטים שלנו. הסקריפט מושעה מהפעלתו כאשר נעשה שימוש בפקודה 'השהה', והוא נעצר למשך פרק זמן מוגדר מראש כאשר נעשה שימוש בפקודה 'פסק זמן'.

שימוש בהצהרות מותנות לבקרת זרימה

הצהרות מותנות הן הטכניקה הישימה ביותר המשמשת כדי לשנות את הזרימה של סקריפט בהתבסס על נסיבות מסוימות. בהתבסס על השאלה אם תנאי הוא נכון או לא נכון, הצהרת 'if' מבצעת אחת משתי קטעי ביצוע קוד. הצהרת 'אם' בנויה באופן הבא:

אם אחר

דוגמא:

פתח את פנקס הרשימות או כל עורך טקסט לבחירתך וכתוב את הקוד הבא המאתחל את הערך של משתנה inputValue ל-1 בשורה השלישית. הערך של משתנה inputValue נבדק לאחר מכן באמצעות משפט 'if' בזמן ריצה כדי לראות אם הוא שווה ל-1, 2 או 3. אם כן, ההודעה המתאימה מודפסת במסך שורת הפקודה. אם לא, ההודעה הסופית תוצג. במשפט מותנה המכונה 'if', ערך inputValue של משתנה נבדק כדי לראות אם הוא שווה ל-1, 2 או 3. אם כן, אחד משני בלוקי קוד מבוצע לאחר מכן. אם התנאי נכון, ההצהרה המותנית אינה עושה דבר.

@הד כבוי

rem סקריפט זה בודק את המשתנה inputValue מול הערכים 1, 2 ו-3.

הגדר inputValue=1

if '%inputValue%'=='1' (

echo ערך הקלט שווה ל-1.

) אחרת אם '%inputValue%'=='2' (

echo ערך הקלט שווה ל-2.

) אחרת אם '%inputValue%'=='3' (

echo ערך הקלט שווה ל-3.

) אחר (

echo המשתנה inputValue אינו שווה ל-1, 2 או 3.

)

תְפוּקָה:

סיכום

ניתן לשלוט בזרימת הסקריפט, ותהליכים יכולים להיות אוטומטיים במערכת ההפעלה Windows באמצעות פקודות, לולאות והצהרות מותנות כמו 'אם'. מפתחים עשויים להפסיק את הביצוע של סקריפט או להוסיף עיכובים עם הפקודה 'השהה' על ידי שימוש ב'פסק זמן' או 'פינג'. למרות שאין הצהרת 'מתג' מובנית ב-batch scripting, אנו יכולים לדמות אותה עם ביטויי 'if' ו-'else if'. בדיקה חיונית כדי להבטיח שסקריפטים אלה פועלים כמתוכנן בהקשר המתאים. סקריפטים אלה שימושיים עבור אוטומציה, ניהול מערכת ומניפולציה של קבצים.