טיפים לפרויקט פאוורשל ראשון¶
כתיבת סקריפט פאוורשל ראשון היא רגע נחמד - פתאום משימה שלקחה לכם עשר דקות ידניות קורית בשנייה אחת. אבל יש כמה מלכודות שכל מי שמתחיל נופל בהן, ועדיף לדעת עליהן מראש. הנה טיפים מעשיים שיחסכו לכם כאב ראש בפרויקט הראשון.
תתחילו קטן ובנו למעלה¶
הפיתוי הראשון הוא לנסות לכתוב סקריפט שעושה הכל בבת אחת. עדיף הרבה יותר לבנות אותו בשלבים - קודם וודאו שאתם מצליחים לקבל את המידע שאתם צריכים (למשל רשימת קבצים או תהליכים), ורק אחר כך תוסיפו את הלוגיקה שמעבדת אותו. כך, אם משהו לא עובד, אתם יודעים בדיוק באיזה שלב הבעיה.
-WhatIf הוא החבר הכי טוב שלכם¶
הרבה פקודות פאוורשל, במיוחד כאלה שמוחקות או משנות דברים, תומכות בפרמטר -WhatIf. הוא מריץ את הפקודה "בדמיון" - מראה לכם בדיוק מה היה קורה, בלי לבצע את הפעולה בפועל.
לפני שמריצים פעולה הרסנית על אמת, כמו מחיקת קבצים בהיקף גדול, תמיד תריצו קודם עם -WhatIf ותוודאו שהתוצאה היא בדיוק מה שציפיתם לה.
אל תתעלמו משגיאות - תטפלו בהן¶
סקריפט מתחיל בדרך כלל בלי שום טיפול בשגיאות, מה שאומר שאם משהו נכשל באמצע, הסקריפט פשוט ממשיך הלאה כאילו כלום לא קרה, או קורס בצורה לא ברורה. הבלוק try/catch נותן לכם שליטה על מה קורה כשמשהו משתבש:
try {
Get-Content -Path "C:\config.txt" -ErrorAction Stop
} catch {
Write-Host "לא הצלחתי לקרוא את הקובץ: $($_.Exception.Message)"
}
שימו לב לפרמטר -ErrorAction Stop - בלעדיו, הרבה פקודות פאוורשל רק כותבות שגיאה ומדפיסות אותה, בלי לעצור בכלל את הרצף, כך שה-catch לא באמת יתפוס אותה.
תכתבו פרמטרים, לא ערכים קבועים¶
במקום לקבע נתיבים ושמות ישירות בתוך הקוד, כדאי להגדיר אותם כפרמטרים בתחילת הסקריפט. זה הופך את הסקריפט לגמיש בהרבה - אפשר להריץ אותו על תיקיות שונות בלי לגעת בקוד בכלל.
תבדקו על סביבת בדיקה, לא על נתונים אמיתיים¶
לפני שמריצים סקריפט על קבצים או מערכת אמיתיים, כדאי לבדוק אותו על תיקייה זמנית עם קבצי דמה. זה נכון במיוחד לסקריפטים שמוחקים, משנים הרשאות, או נוגעים ברגיסטרי - טעות קטנה שם יכולה לגרום נזק שקשה לתקן.
תשתמשו בפלט אובייקטים, לא בטקסט¶
ההבדל הגדול בין פאוורשל ל-cmd הישן הוא שפאוורשל מעביר בין פקודות אובייקטים אמיתיים, לא רק טקסט. במקום לנתח פלט טקסטואלי בעצמכם, אפשר להעביר אותו ישירות לפקודה הבאה עם pipe, ולסנן או למיין לפי מאפיינים ממשיים:
זה קיצור עצום בהשוואה לפירוק טקסט ידני.
תשמרו הערות בקוד, גם אם זה "ברור"¶
סקריפט שכתבתם היום נראה מובן לגמרי היום. בעוד חצי שנה, כשתחזרו אליו כדי לתקן משהו, הוא כבר לא יהיה כזה ברור. כמה שורות הערה על מה הסקריפט עושה ולמה, חוסכות זמן רב בעתיד.
פרויקט ראשון בפאוורשל הוא הזדמנות מצוינת ללמוד הרגלים טובים מההתחלה, לפני שהם הופכים לקשים לשינוי. מי שרוצה להעמיק ולהבין את ווינדוס לעומק לצד הכתיבה בפאוורשל, מוזמן להתחיל מהיסודות בקורס שלנו: קורס ווינדוס בסיסי.
עובדים על פרויקט ראשון ונתקעתם באמצע? שתפו אותנו בקהילה ונעזור.