茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1673293 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00021.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2015/11/30 9:17:25
PowerShell 語法參考教學

PowerShell Assignment Operator 變數與指定運算子

指定運算子可讓您對變數指定單一數值 (純量) 或多重數值 (陣列)。您也可以將變數
轉換成任何 .NET 資料型別,以及使用單一命令對多個變數指定值。

Windows PowerShell 支援下列指定運算子:

    運算子   描述
    -------- --------------------------------------------------------
    =        將變數的值�]定為指定的值
    +=       將變數的值�[上指定的值
             或附�[至�{有的值
    -=       將變數的值減去指定的值
    *=       將變數的值乘以指定的值
             或附�[至�{有的值
    /=       將變數的值除以指定的值
    %=       將變數的值除以指定的值
             然後將餘數 (模數) 指定給變數


= 指定運算子
若要指定單一值,請輸入變數的名稱 (以 $ 開頭) 加上 = 指定運算子,再加上要指定
給變數的值。例如,若要將值 6 指定給 $a 變數,請輸入:
$a = 6

若要將字串值指定給變數,請將字串值置於雙引號中。例如:
$a = "baseball"

您也可以使用 = 運算子指定陣列給變數。若要指定陣列的元素,請以逗號分隔
元素值。例如,
        $a = "apple", "orange", "lemon", "grape"

指定陣列後,您可以使用索引 (起始位置為 0) 來參照陣列中的元素。請將索引置於方
括號中。例如,若要參照 $a 陣列中的第一個元素,請輸入:
        $a[0]

若要參照第三個元素,請輸入:
        $a[2]

Windows PowerShell 也允許您將關聯陣列指定給變數。在關聯陣列中,值會與「索引
鍵」相關聯,「索引鍵」就是您所定義的標籤。請在指定陣列給變數時指定索引鍵。
例如,若要將關聯陣列指定給 $a 變數,請輸入:
        $a = @{one=1; two=2; three=3}

此範例將值 1、2 和 3 指定給 $a 變數,而且每個值各有其索引鍵。1 的索引鍵為
"one",2 的索引鍵為 "two",3 的索引鍵為 "three"。

使用下列格式即可參照關聯陣列中的值:

<陣列>.<索引鍵>

例如,若要顯示 2,請輸入:
       $a.two

您也可以指定十六進位值給變數。例如,若要將值 0x10 指定給 $a 變數,請輸入:
       $a =  0x10

當您輸入上述命令時,Windows PowerShell 會將十六進位值 (0x10) 轉換成十進位值
(就本例而言即 16),並將轉換後的值視同整數 (Int32) 資料型別而指定給 $a 變數。

您也可以指定指數值給變數。為此,請指定底數、字母 "e" 以及代表 10 的倍數的數
字。例如,若要指定 3.2573 的 1000 次方,請輸入:
       $a = 3.2573e3

位於 "e" 後面的 "3" 指示 Windows PowerShell 應計算底數的 1000 次方。因此,指
定給變數的值為 3257.3。若要計算此數字的 10 次方,請輸入 "3.2573e1"。若要計
算此數字的 100 次方,請輸入 "3.2573e2"。

Windows PowerShell 也能將指定給變數的值從千位元組 (KB)、百萬位元組 (MB) 和十
億位元組 (GB) 轉換成位元組。例如,若要將 10 KB (千位元組) 指定給 $a 變數,請
輸入:
       $a = 10kb


當您執行此命令時,Windows PowerShell 會將值 10,240 指定給變數。

= 指定運算子
+= 運算子會累加 (增加) 或附加變數的現有值,取決於變數屬於數字或字串資料
型別,以及變數係設為純量或陣列而定。

+= 運算子結合兩種運算:先執行加法,再進行指定。因此,
       $a += 2

相當於:
       $a = ($a + 2)

如果變數是數字純量值,請使用 += 運算子將運算子右邊所指定的數額累加到現有
的值。例如,假設 $a = 8;若要將其值增加 2,請輸入:
       $a += 2

變數的值若為字串像是 "happy",則會將 2 附加至字串,因此結果值將是 "happy2"。

變數的值若為陣列 (數字或字串),+= 運算子便會將值為 2 的元素附加至陣列。

例如,假設 $a = 1,2,3,4,則 "$a += 2" 的結果為 $a = 1,2,3,4,2。

-= 指定運算子
-= 運算子會將現有的數值遞減 (減去) 運算子右邊所指定的值。此運算子不能用在字
串變數。

-= 運算子結合兩種運算:先執行減法,再進行指定。因此,
        $a -= 2

相當於:
        $a = ($a - 2)

例如,若要將 $a 變數的值減去 2,請輸入:
        $a -= 2

如果儲存在 $a 中的值為 8,執行運算後 $a 所包含的值則為 6。再次執行命令將
使 $a 所包含的值變成 4。

-= 指定運算子也可以用在數字陣列。為此,請指定所要變更之陣列元素的索引。
例如,
        $a = 1,2,3

使用下列命令即可變更第三個值 (索引位置 2):
        $a[2] -= 1

此命令會將第三個值減去 1,所以變數如今等於 1, 2, 2。

*= 指定運算子
*= 運算子會將現有的變數值乘以運算子右邊所指定的值。如果變數包含數字純量值,
便將其值乘以指定值。例如,假設 $a 設為 3,則下列命令會將其值設為 12:
        $a *= 4

*= 運算子結合兩種運算:先執行乘法,再進行指定。因此,
        $a *= 2

相當於:
        $a = ($a * 2)

然而,如果 $a 是字串值,Windows PowerShell 便會將指定的數字當成字串的數目,
然後將該數目的字串附加至其值。

例如,假設 $a 變數設為 "Apple",則:
        $a *= 4

會使 $a 的值變成
    "AppleAppleAppleApple"。

若要對陣列的元素執行乘法,請使用索引來識別所要變更的元素。例如,下列命令將
陣列中的第一個元素 (索引位置 0) 乘以 2。
        $a[0] *= 2

/= 指定運算子
/= 運算子會將數字值除以運算子右邊所指定的值。此運算子不能用在字串變數。

/= 運算子結合兩種運算:先執行除法,再進行指定。因此,
        $a /= 2

相當於:
        $a = ($a / 2)

例如,若要將 $a 的值除以 2,請輸入:
        $a /= 2

如果 $a 原本等於 8,執行命令後將使該變數變成 4。再次執行命令則會將變數
設為 2。

若要對陣列的元素執行除法,請使用索引來識別所要變更的元素。例如,下列命令將
陣列中的第二個元素 (索引位置 1) 除以 2。
        $a[1] /= 2

%= 指定運算子
%= 運算子會將現有的變數值除以指定值,然後將餘數 (稱為「模數」) 指定給變數。
此運算子只能用在數字純量變數,而不能用在字串變數或是包含陣列的變數。

%= 運算子結合兩種運算:先執行除法並算出餘數,再將餘數指定給變數。因此,
        $a %= 2

相當於:
        $a = ($a % 2)

例如,假設 $a 所包含的值為 5,則下列命令會將其值變更為 1。
        $a %= 2

.NET 資料型別
根據預設,純量變數的資料型別取決於變數指定值的第一個元素。例如,下列命令會
將變數轉換成 int (整數) 型別:
$a = 6

如需確認變數的資料型別,請使用 GetType() 方法。例如,若要檢視目前指定給 $a
的型別,請輸入:
        $a.gettype()


您可以將指定值置於雙引號中,進而將變數轉換成字串型別:
        $a = "6"

如果最初指定的值是字串,Windows PowerShell 便會將所有的運算都視為字串運算,
並將新值轉換成字串。

例如,
        $a = "6"
        $a += 3

會使變數的新值變成字串值 "63"。

如果最初指定的值是整數,則 Windows PowerShell 會將所有的運算都視為整數運算,
並將新值轉換成整數。

例如,
        $a = 6
        $a += "3"

會使新值變成整數值 9。

您可以將資料型別名稱置於方括號中,然後放在變數名稱或第一個指定值的前面,進而
將新的純量變數轉換成任何 .NET 資料型別。

轉換變數型別有助於判斷變數中所能儲存的資料型別,以及變數受操控時的行為模式。

例如,下列命令會將變數轉換成字串型別:
        [string]$a = 27.5

初始化新變數時,在指定值的前面加上型別名稱也能達到同樣的效果:
        $a = [string]27.5

將變數轉換成特定型別時,一般慣例通常是轉換變數本身而非轉換其值的型別。然而,
若是對現有的變數指定值,則會因為資料型別名稱的位置不同而有所差異。

例如,假設 $a 包含字串值 "three";若要將其值指定為整數 3,應將資料型別名稱放
在指定值的前面而非變數名稱前面。如果放在變數名稱前面,Windows PowerShell
便會顯示錯誤,指出無法嘗試將字串值 ("three") 轉換成整數。

此外,將資料型別放在變數名稱前面會鎖定變數的型別,除非您藉由指定其他資料型別
以明確置換型別。若您並未明確置換型別,以致嘗試指定的值與現有的型別不相容,
Windows PowerShell 便會顯示錯誤。

Windows PowerShell 在處理陣列變數的資料型別方面,做法上有別於處理純量變數的
資料型別。陣列變數若未明確指定資料型別,則其資料型別始終都是 object[],這是
陣列特有的型別。在某些情況下,您可藉由指定其他型別來置換此預設型別。
例如,下列命令將變數轉換成 string[] 陣列型別:
        [string[]]$a = "one", "two", "three"

Windows PowerShell 變數可以是任何 .NET 資料型別。此外,您亦可指定目前處理序
所適用的任何完整格式 .NET 資料型別。例如,下列命令指定了 System.Datetime
型別:
        [system.datetime]$a = "5/31/2005"

指定給變數的值屬於 datetime 型別。因此,$a 變數的值將會是
"Tuesday, May 31, 2005 12:00:00 AM"。

指定多重變數
在 Windows PowerShell 中,您可以使用單一命令對多個變數指定值。指定值的第一
個元素會指定給第一個變數,第二個元素指定給第二個變數,第三個元素指定給第
三個變數,依此類推。例如,下列命令將 1 指定給 $varA,將 2 指定給 $varB,
並將 3 指定給 $varC:
        $varA, $varB, $varC = 1, 2, 3

如果指定值包含的元素數目比變數的個數還要多,多出的值則全部指定給最後一個變
數。例如,下列命令包含三個變數,卻指定了五個值:
        $varA, $varB, $varC = 1, 2, 3, 4, 5

在此情況下,Windows PowerShell 會將 1 指定給 $varA,將 2 指定給 $varB,並將
3、4 和 5 指定給 $varC。

若要將 $varC 中的值再指定給其他三個變數,請使用下列格式:
        $varD, $varE, $varF = $varC

指定給 $varD 的值為 3,指定給 $varE 的值為 4,指定給 $varF 的值則為 5。

您也可以鏈結變數而將單一值指定給多個變數。例如,下列命令將值 "three" 同時指
定給四個變數:
        $varA = $varB = $varC = $varD = "three"

這四個變數如今都指定了相同的值。

與變數相關的 CMDLET
除了透過指定運算來設定變數值之外,您還可以使用 Set-Variable cmdlet。例如,
若要將 1, 2, 3 陣列指定給 $varA 變數,請使用下列命令:
        Set-Variable -name varA -value 1, 2, 3

Windows PowerShell 也隨附了與變數相關的其他 cmdlet,包括 Clear-Variable 和
Remove-Variable。Clear-Variable cmdlet 用於清除指定之變數的現有值。對於
字串變數,Clear-Variable cmdlet 會將變數設定成值為 null 的運算式。對於
數字變數,此 cmdlet 則會將變數設為 0。

Remove-Variable cmdlet 用於刪除指定的變數。這可幫您省去重新輸入變數的繁複工
作。也就是說,您可以使用此 cmdlet 移除變數再重新初始化該變數。

原文出處:PowerShell 語法說明/範例教學
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|