(10)Powershell賦值運算符(一)

    上一節介紹了Powershell中的內置變量,細節使勁戳這裏
shell


    本節介紹Powershell中的賦值運算符,賦值運算符可向一個變量賦予一個或多個值。賦值運算符能夠在賦值以前對值執行數值運算。數組

    

    Powershell支持如下賦值運算符。
app

運算符 說明 備註
= 將變量的值設置爲指定值。
+= 使變量的值增長指定值,或將指定值追加到現有值。
-= 使變量的值減小指定值。
*= 將變量的值與指定值相乘,或將指定值追加到現有值。 第二個操做數必須是數字,詳細內容參考Powershell賦值運算符(二)
/= 將變量的值除以指定值。 兩個操做數都必須是數字,詳細內容參考Powershell賦值運算符(二)
%=
將變量的值除以指定值,而後將餘數(模)賦予變量。 兩個操做數都必須是數字,詳細內容參考Powershell賦值運算符(二)
++ 使變量、可賦值屬性或數組元素的值增長 1。 一元運算符,有前綴和後綴的形式,而且可賦值表達式必須是數字或是能夠轉換爲數字。
--
使變量、可賦值屬性或數組元素的值減小 1。 一元運算符,有前綴和後綴的形式,而且可賦值表達式必須是數字或是能夠轉換爲數字。

    


  1. 賦值運算符的語法ide

    賦值運算符的語法以下:
spa

    <可賦值表達式><賦值運算符(上表格列出的內容)><值>,
對象

可賦值表達式包括變量和屬性,值能夠是單個值,值數組,也能夠是命令,表達式或是語句,例如blog

PS C:\> $a=1
PS C:\> $pro=Get-Process
PS C:\> $a="apple","orange","lemon","grape"

2. 賦值運算符(=)排序

    變量是存儲值的內存空間,使用賦值運算符能夠將值存儲在變量中,新值能夠替換變量的現有值,也能夠將值追加到現有值。例如如下語句將字符串"Powershell"賦值給變量$myStr
索引

PS C:\> $myStr="Powershell"

    PowerShell 中向變量賦值時,若是該變量不存在,則會建立該變量。例如,下面兩條賦值語句中的第一條建立 $a 變量並將值 1 賦予 $a。第二條賦值語句將值 3 賦予 $a。第一條語句建立一個新變量。第二條語句只更改該變量的值:three

PS C:\> $a=1
PS C:\> $a=3

    PowerShell 中的變量沒有特定數據類型,除非進行轉換。若是變量僅包含一個對象,則變量採用該對象的數據類型。若是變量包含對象集合,則變量爲 System.Object 數據類型。所以,能夠向該集合賦予任何類型的對象。例以下面的語句能夠向變量添加進程對象、服務對象、字符串和整數,而不會生成錯誤:

PS C:\> $a=Get-Process
PS C:\> $a+=Get-Service
PS C:\> $a+="my string"
PS C:\> $a+=13

    賦值運算符 (=) 的優先級低於管道運算符 (|),因此在將命令管道的結果賦予變量時不須要圓括號。例如,下面的命令對計算機上的進程進行排序,而後將排序後的進程賦予 $a 變量:

PS C:\> $a=Get-Process | Sort-Object -Property name

    還能夠將語句建立的值賦予變量,以下面的語句所示

PS C:\> $a=if($b -lt 0) { 0 } else { $b }

    -lt 是 less then 的縮寫,至關於高級語言中的<=,會在Powershell的比較運算符中講到。上面語句的意思是若是$b 的值小於 0 時將 0 賦予 $a 變量。若是 $b 的值不小於零,則將 $b 的值賦予 $a。

    若是要將哈希表賦予變量,請使用 PowerShell 中的標準哈希表表示法。一個 at 符號 (@),在其後鍵入使用分號 (;) 分隔、括在大括號 ({ }) 內的鍵/值對。例如,下面的語句將哈希表賦予 $a 變量:

PS C:\> $a=@{one=1; two=2;three=3}

    若是要將十六進制值賦予變量,請在值前面加上"0x"。PowerShell 會將十六進制值 (0x10) 轉換爲十進制值(本例中爲 16),而後將該值賦予 $a 變量。例如,如下語句將值 0x10 賦予變量 $a:

PS C:\> $a=0x10
PS C:\> $a
16

    若是要將指數值賦予變量,須要輸入根數字、字母"e"和一個表示 10 的倍數的數字。例如,若要將 3.1415 的 100 次冪值賦予 $a 變量,請輸入:

PS C:\> $a=3.1415e2
PS C:\> $a
314.15

    PowerShell 中還能夠將千字節 (KB)、兆字節 (MB) 和千兆字節 (GB) 轉換爲字節。例如,如要將值 10 千字節賦予 $a 變量,請輸入:

PS C:\> $a=10kb

3. 加法賦值運算符(+=)

   加法賦值運算符 (+=) 可增長變量的值或將指定值追加到現有值。具體操做取決於變量是數字仍是字符串類型,以及變量是包含單個值(標量)仍是多個值(集合)。+=運算符組合了兩個運算。首先執行加法,而後賦值。所以,如下語句是等效的。    

PS C:\> $a+=2
PS C:\> $a=($a+2)

    若是變量包含單個數字值,則 += 運算符使現有值增長該運算符右側的數量。將運算符將獲得的值賦予變量。例如:

PS C:\> $a=5
PS C:\> $a+=3
PS C:\> $a
8

    若是變量的值是字符串,則將該運算符右側的值追加到該字符串,以下所示:

PS C:\> $a="Windows"
PS C:\> $a+=" Powershell"
PS C:\> $a
Windows Powershell

    若是變量的值是數組,則 += 運算符將其右側的值追加到數組。除非經過轉換顯式指定數組的類型,不然能夠將任何類型的值追加到數組,以下所示:

PS C:\> $a=1,2,3
PS C:\> $a+=4
PS C:\> $a
1
2
3
4
PS C:\> $a+="string"
PS C:\> $a
1
2
3
4
string

    若是變量的值是哈希表,則 += 運算符將其右側的值追加到該哈希表。不過,由於只能向哈希表添加另外一個哈希表,因此全部其餘賦值都會失敗

例如,下面的命令將哈希表賦予 $a 變量。而後,該命令使用 += 運算符將另外一個哈希表追加到現有哈希表,其實是將一個新鍵/值對添加到現有哈希表。此命令成功,輸出以下所示:

PS C:\> $a=@{a=1;b=2;c=3}
PS C:\> $a+=@{four="4"}
PS C:\> $a

Name                           Value
----                           -----
a                              1
b                              2
four                           4
c                              3

    下面的命令試圖將一個整數 (1) 追加到 $a 變量中的哈希表。此命令將失敗:

PS C:\> $a=@{a=1; b=2; c=3}
PS C:\> $a+1
只能向哈希表添加另外一個哈希表。
所在位置 行:1 字符: 4
+ $a+ <<<< 1
    + CategoryInfo          : InvalidOperation: (1:Int32) [], RuntimeException
    + FullyQualifiedErrorId : AddHashTableToNonHashTable

4. 減法賦值運算符 (-=)

    減法賦值運算符 (-=) 使變量的值減小在該運算符右側指定的值。此運算符不能用於字符串變量,也不能用於從集合中刪除元素。-= 運算符組合了兩個運算。首先執行減法,而後賦值。所以,如下語句是等效的:    

PS C:\> $a-=2
PS C:\> $a=($a-2)

    如下語句使用 -= 運算符減小變量的值:

PS C:\> $a=9
PS C:\> $a-=4
PS C:\> $a
5

    還可使用 -= 賦值運算符減小數值數組的成員的值。請指定要更改的數組元素的索引。在下面的示例中,數組中第三個元素(元素 2)的值減小 1:

PS C:\> $a=1,3,5
PS C:\> $a[1]-=1
PS C:\> $a
1
2
5

    不能使用 -= 運算符刪除變量的值。要刪除賦予變量的全部值,請使用 Clear-Item 或 Clear-Variable cmdlet 將值 $null 或 "" 賦予變量。

PS C:\> $a=8
PS C:\> $a=$null
PS C:\> $a

    要從數組中刪除特定值,請使用數組表示法將值 $null 賦予該特定項。例如,下面的語句從數組中刪除第二個值(索引位置 1):

PS C:\> $a=1,2,4
PS C:\> $a
1
2
4
PS C:\> $a[1]=$null
PS C:\> $a
1
4

    要刪除變量,請使用 Remove-Variable cmdlet。在變量已顯式轉換爲特定數據類型,而您須要非類型化變量時,可使用此方法。下面的命令刪除 $a 變量:

PS C:\> $a=5
PS C:\> Remove-Variable a
PS C:\> $a

    須要注意的是,使用Remove-Variable命令時,使用的命令名稱,變量以前沒有美圓符號($)。

相關文章
相關標籤/搜索