摘要:[PowerShell] 變數 (Variable)
在介紹PowerShell用法之前,先來說明一下「Windows PowerShell 整合指令碼環境 (ISE)」
Window PowerShell ISE
- 主控應用程式,可以直接在這個環境中撰寫、執行和測試、偵錯指令碼等。
ISE因為OS環境的不同,有些是選擇性需自行安裝的。
以Window 7為例,預設是有安裝ISE的哦。
(1) 程式集 → 搜尋「PowerShell」→ 選擇「PowerShell ISE」
(2) 接下來,點下去開啟ISE,來試試如何玩玩PowerShell唄~
如下圖示,分為「指令碼編輯窗格、輸出窗格、命令窗格」。
變數 (Varible)
- 變數:「$」開頭
如同一般程式寫法,只是變數為$開頭,先來簡單試試以下程式唄。
$a = 6 #將數字6指定給變數$a
$b = 27.5 #將數字27.5指定給變數$b
$c = "27.5" #將字串27.5指定給變數$c
Step1:於ISE的「指令碼編輯窗格」填上上方的程式碼,並按下綠色的執行按鈕。
(此時,程式已執行了這三行程式碼,可以再試試Step2)
Step2:在最下方的「命令窗格」,輸入「$a」並按下Enter,中間的「輸出窗格」,變會出現$a的結果為6。
Step3:可以利用「$變數.GetType()」,來取得變數的型態。
(在「命令窗格」執行以下程式碼,或如下圖直接貼在「指令碼編輯窗格」中,再點選執行按鈕。
$a.GetType()
$b.GetType()
$c.GetType()
Step4:測試後發現,右邊指定的值可以決定左方變數的型態。
Step5:接下來,我們再來試試看陣列的用法吧,若想指定陣列,直接以逗號分隔不同的陣列元素。
$ary = "totoro", "say", "powershell", "is", "good"
Step6:指定陣列後,就可以利用索引值(起始值為0),取得陣列中的元素囉~
舉例說明,若想取得第一個元素的"totoro":
$ary[0]
若想取得第三個元素的"powershell":
$ary[2]
$ary[2..4]
$ary[2,4]
$ary[-2]
$array = @() #陣列初始化
$array += "ary1"
$array += "ary2"
$array += "ary3"
$hash = @{}
$hash.title = "powershell"
$hash.date = Get-Date
$hash.id = 1234567
$hash = @{title = "powershell"; date = Get-Date; id = 1234567}
最後,來總結一下,powershell的變數,會依右方的指定值型態,自動處理型別的轉換。
另外提供以下例子,若是兩種不同型別的處理 (可於「指令碼編輯窗格」中,再點選執行按鈕)
$a="1"
$b=2
直接於「輸出窗格」試試以下結果:
$a + $b
字串$a加整數$b,powershell會將$b的數字2轉換為字串,結果為12
$b + $a
結果為3。
- 指定型別
承上,我們其實也可以自行指定轉換的型別,例如:
[int]$a + $b
$a強制由字串1,轉型為整數1,故結果為3
[string]$b + $a
同樣的,$b強制由整數2,轉型為字串2,結果為21。
最後的最後,提供以下幾種powershell的資料型態哦~
資料型態
|
描述
|
[string]
|
Unicode字元字串(System.String)
|
[char]
|
Unicode 16-bit字元(System.Char)
|
[byte]
|
8-bit unsigned字元(System.Byte)
|
[int]
|
32-bit signed整數(System.Int32)
|
[long]
|
64-bit signed整數(System.Int64)
|
[bool]
|
True, False布林值(System.Boolean)
|
[decimal]
|
128-bit十進位數值(System.Decimal)
|
[single]
|
32-bit單精度浮點數(System.Single, float)
|
[double]
|
64-bit雙精度浮點數(System.Double)
|
[datetime]
|
日期時間(System.DateTime)
|
[xml]
|
XML物件
|
[array]
|
陣列值
|
[hashtable]
|
HashTable物件
|