30 July 2010

Hello World PowerShell


היי לכולם, שמי רועי קולבינגר, מהנדס תוכנה M.Sc. מפתח בטכנולוגיית SharePoint משנת 2007 בחברת KWizCom. הHello World שלי אדגים בPowerShell שפת הShell של .Net


רקע
PowerShell זו ממשק הסקריפטים של מיקרוסופט מבוססת .Net. אם עד היום כדי אם הינו רוצים לבנות script בשרת, הינו כותבים קובץ
VB Script או קובץ batch שמכיל פקודות dos. היום אנחנו יכולים גם להשתמש ב PowerShell המבוסס על .Net המוכר לנו (המפתחים).

כדי להפעיל את ה PowerShell יש לגשת ל Start Accessories Windows PowerShell Windows PowerShell


בחלון ה Windows PowerShell (שדומה לחלון הCMD המוכר) לכתוב את הscript. אפשר כמובן להכין את הscript מראש בNotepad (עדיף Notepad ++) או ב PowerShell ISE (שבו אפשר לעשות debug – יורחב בהמשך...).


כמה כללים בסיסים ב PowerShell.
  1. לא משנה איך כותבים את גודל האותיות באנגלית (Capital Letters or Small Letters).
  2. הערה רושמים כסולמית # (דוגמא: This is a comment#).
  3. הבנה פשוט ומוכר לחובבי פקודות הCMD: Cmdlet position0 position1 –ParameterName value –ParameterSecond value.
  4. עדין אפשר לכתוב שורות dos (כמו CD,DIR,CLS…).
  5. קובץ הסקריפט מסתיים בסיומת ps1.
הבדל בין DOS ל PowerShell בצורת הsyntax.
בDOS כדי לצפות בפרטים של הספריה הינו מבצעים את הפקודות הבאות:
C:\>cd temp

C:\Temp>dir


ב PowerShellזה נראה כך:
PS C:\> Set-Location c:\temp

PS C:\Temp> Get-ChildItem # You can write like linux: PS C:\> ls

בשתי הפקודות נקבל את אותה תוצאה, רק שהבדל הוא ש Get-ChildItemהיא פרוצדורה של .Net. אם בDOS הגדרנו משתנה כך,
%HelloWorld%="Hello World"
ב PowerShellנכתוב כך,
$HelloWorld = "Hello World"
הבסיס
כפי שהסברתי קודם, משתנה מגדירים עם $ בהתחלה. לדוגמא


$myDate = get-date
כאשר myDate מכיל את היום. אם אנחנו רוצים משתנה עם Type צריך
להגדיר אותו בצורה הזו


[int]$num

מערכים מגדירים בצורה הזו:

$Arr = "Hello", "World"

מכיוון שזו שפה יש בה פונקציות, לולאות, אופרטורים וכדומה.
דבר מאוד חיוני בPowerShellהוא pipe (הסימן ). Pipe הוא הדרך להעביר אובייקטים בצורה משורשת מאחד
לשני.


דוגמא:
נרשום את הפקודות הבאות
Set-Location c:\Demo\Powershell01\

Get-ChildItem

עכשיו אנו רואים מה יש בספריה הנוכחית (כפי שצינתי קודם פקודת DIR של DOS).
Notepad HelloWorld1.ps1




עכשיו יפתח הNotepad יש לשמור את הקובץ ולסגור. עכשיו נרשום .\Hello.ps1 כדי להריץ- ולא קורה כלום (כי עדין לא ביצענו פקודה).


לאחר מכן נפתח Windows PowerShell ISE ( Start Accessories Windows PowerShell Windows PowerShell ISE).




נגדיר משתנה


HelloWorld: $HelloWorld = "Hello, how are you?"

כדי לרשום שורה מקלידים Write-Host.
(או Write) הנה דוגמא לקוד:


כדי לבדוק את התוכנית, בדומה לVisual Studio יש ללחוץ בתפריט העליון על Debug ושם על Toggle Breakpoint בנקודה שאנו רוצים להתחיל לדבג, ואז שוב בתפריט העליון ב
debug יש ללחוץ Run/Continue. ואז OK.


עכשיו נריץ שוב ונקבל


רגע של מחשבה

תחשבו על זה במקום ולפתוח console application ולכתוב
את הקוד המוכר הבא


namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("Hello World!!!");
}
}
}

כל מה שנצטרך זה לרשום (בלי Visual Studio )את הפקודה הבאה


Write "Hello World!!!"
עזרה
אפשר להעמיק עוד ועוד בתוך האובייקטים והדרך הקלה היא בעזרת המתודה Get-Help.




בפוסט הבא, אסביר על power shell בshare point 2010

מקווה שנהנתם,

רועי