בית הספר חנון למידה משתנים PowerShell, קלט פלט
כאשר אנו מתרחק פשוט פועל פקודות ולעבור לכתיבת סקריפטים מלא blown, תצטרך מקום זמני לאחסן נתונים. זה המקום שבו משתנים באים.
הקפד לקרוא את המאמרים הקודמים בסדרה:
- למד כיצד להפוך את Windows עם PowerShell
- ללמוד להשתמש Cmdlets ב PowerShell
- ללמוד כיצד להשתמש אובייקטים ב PowerShell
- הלמידה עיצוב, סינון והשוואה ב PowerShell
- למד להשתמש Remoting ב PowerShell
- באמצעות PowerShell כדי לקבל מידע על המחשב
- עבודה עם אוספים ב - PowerShell
ו להישאר מכוון עבור שאר הסדרה כל השבוע.
משתנים
רוב שפות התכנות מאפשרות שימוש במשתנים, שהם פשוט מכולות המחזיקות בערכים. ב PowerShell, גם לנו יש משתנים והם ממש קל לשימוש. הנה איך ליצור משתנה בשם "FirstName" ולתת לו את הערך "טיילור".
$ FirstName = "טיילור"
הדבר הראשון שרוב האנשים שואלים הוא למה אנחנו שם סימן דולר מול שם המשתנים, וזה בעצם שאלה טובה מאוד. באמת, סימן הדולר הוא רק רמז קצת לקליפה שאנחנו רוצים לגשת לתוכן של המשתנה (לחשוב מה בתוך המיכל) ולא את המכולה עצמה. ב PowerShell, שמות המשתנים אינם כוללים את סימן הדולר, כלומר בדוגמה לעיל המשתנים שם הוא למעשה "FirstName".
ב- PowerShell, תוכל לראות את כל המשתנים שיצרת במשתנה PSDrive.
משתנה gci:
מה שאומר שאתה יכול למחוק משתנה מן הקליפה בכל עת מדי:
הסר פריט משתנה: \ FirstName
המשתנים אינם חייבים להכיל גם אובייקט אחד; אתה יכול בקלות לאחסן אובייקטים מרובים במשתנה. לדוגמה, אם אתה רוצה לאחסן רשימה של תהליכים הפועלים במשתנה, אתה יכול פשוט להקצות לו את הפלט של Get-Process.
$ Proc = Get-Process
הטריק להבנה זו הוא לזכור כי הצד הימני של סימן השווה מוערך תמיד הראשון. זה אומר שאתה יכול לקבל צינור שלם בצד ימין אם אתה רוצה.
$ CPUHogs = Get-Process | מיין CPU - יורד | בחר -ראש 3
המשתנה CPUHogs יכיל כעת את שלושת התהליכים הפועלים באמצעות ה- CPU.
כאשר יש לך משתנה מחזיק אוסף של אובייקטים, יש כמה דברים להיות מודעים. לדוגמה, קריאה לשיטה על המשתנה תגרום לה להיקרא על כל אובייקט באוסף.
$ CPUHogs.Kill ()
אשר יהרוג את כל שלושת התהליך באוסף. אם ברצונך לגשת לאובייקט יחיד במשתנה, עליך לטפל בו כמו מערך.
$ CPUHogs [0]
פעולה זו תיתן לך את האובייקט הראשון באוסף.
אל תיתפס!
המשתנים ב- PowerShell מוקלדים בצורה חלשה על-ידי ברירת המחדל, כלומר, הם יכולים להכיל כל סוג של נתונים, נראה כי זה מגיע לתפוס את PowerShell כל הזמן!
$ a = 10
$ b = '20'
אז יש לנו שני משתנים, אחד מכיל מחרוזת והשני מספר שלם. אז מה קורה אם תוסיף אותם? זה בעצם תלוי איזה סדר אתה מוסיף אותם.
$ a + $ b = 30
בזמן
$ b + $ a = 2010
בדוגמה הראשונה, האופראנד הראשון הוא שלם, $ a, כך PowerShell חושב חושב שאתה מנסה לעשות מתמטיקה ולכן מנסה להמיר כל אופרנדים אחרים לתוך מספרים שלמים גם כן. עם זאת, בדוגמה השנייה האופראנד הראשון הוא מחרוזת, כך PowerShell פשוט ממיר את שאר האופנדים על מחרוזות ומשרשר אותם. סקריפטים מתקדמים יותר למנוע את זה סוג של gotcha ידי הליהוק המשתנה לסוג שהם מצפים.
[int] $ מספר = 5
[int] $ מספר = '5'
האמור לעיל יביא את המשתנה 'מספר' המכיל אובייקט שלם עם ערך של 5.
קלט ותפוקה
מכיוון ש- PowerShell מיועד להפוך את הדברים לאוטומטיים, מומלץ להימנע מהנחיית משתמשים לקבלת מידע בכל מקום אפשרי. עם זאת, יש הולך להיות פעמים שבו אתה לא יכול למנוע את זה, ועל אותם פעמים יש לנו את ה- cmdlet Read-Host. השימוש בו הוא פשוט מאוד:
$ FirstName = Read-Host -Prompt 'הזן את שמך הפרטי'
כל מה שתזין יישמר במשתנה.
פלט כתיבה הוא פשוט באותה מידה עם כתיבת cmdlet כתיבה.
כתוב פלט "כיצד סלעים חנון!"
הצטרפו אלינו מחר, במקום שבו נקשר את כל מה שלמדנו יחד!