(7)Powershell算術運算符

    本系列博客從這一節開始是Powershell的語法知識,在開始學習語法之前,希望你對Powershell有個基本的瞭解,比如開發工具的使用,面向對象等特性,詳細內容使勁戳這裏(1)-(6)的內容。


    本節主要介紹Powershell中的算術運算符。

  • Powershell支持以下算術運算符

運算符
用法
例子注意事項
+將整數相加;連接字符串、數組和哈希表2+5;"str1"+"str2"Powershell是進行算數相加還是字符串的連接是以第一個操作數的類型爲準
-兩個值相減2-1;(Get-Date).Day-1

-
對數字取負-2+1
*
將整數相乘;按指定次數複製字符串和數組2*3;"str"*3返回輸入字符串的多個副本
/將兩個值相除4/2
%取餘(返回除法運算的餘數)


下面是這些算術運算符的優先級

圓括號() > 取負數(-) > *, /, %  > 加減法

注意:如果記住這些優先級太有挑戰性,就瞭解下,只要知道括號有最高的優先級就可以了。不要寫那些運算順序含混不清的代碼(腳本或是命令)。分辨清晰與否的標誌就是,無論何時,你都應當可以準確表述算數的運算順序。

    下面是在Powershell中使用算數運算符的例子

PS C:\Documents and Settings\Administrator> 1+2
3
PS C:\Documents and Settings\Administrator> 2-1
1
PS C:\Documents and Settings\Administrator> -7+4
-3
PS C:\Documents and Settings\Administrator> 3*7
21
PS C:\Documents and Settings\Administrator> 7/3
2.33333333333333
PS C:\Documents and Settings\Administrator> 7%3
1
PS C:\Documents and Settings\Administrator> "str"*2
strstr
PS C:\Documents and Settings\Administrator> "Windows"+" "+"Powershell"
Windows Powershell
PS C:\Documents and Settings\Administrator> 2*"str"
“*”運算符失敗: 無法將值“str”轉換爲類型“System.Int32”。錯誤:“輸入字符串的格式不正確。”。
所在位置 行:1 字符: 3
+ 2* <<<< "str"
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : OperatorFailed

  • Powershell加法和乘法不是嚴格可交換的

    在上面我們提到,對於運算符"+",Powershell是進行相加還是字符串的連接是以第一個操作數的類型爲準的。舉個例子

PS C:\Documents and Settings\Administrator> "file1"+1
file11
PS C:\Documents and Settings\Administrator> 1+"file1"
無法將值“file1”轉換爲類型“System.Int32”。錯誤:“輸入字符串的格式不正確。”
所在位置 行:1 字符: 3
+ 1+ <<<< "file1"
    + CategoryInfo          : NotSpecified: (:) [], RuntimeException
    + FullyQualifiedErrorId : RuntimeException

    對於乘法運算符"*",同樣以第一個操作數的類型爲準

PS C:\Documents and Settings\Administrator> "str"*2
strstr
PS C:\Documents and Settings\Administrator> 2*"str"
“*”運算符失敗: 無法將值“str”轉換爲類型“System.Int32”。錯誤:“輸入字符串的格式不正確。”。
所在位置 行:1 字符: 3
+ 2* <<<< "str"
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : OperatorFailed

    由以上演示結果可知,在Powershell中,加法和乘法不是嚴格可交換的,換句話說,Powershell中,(a + b) 並不總是等於 (b + a),而 (a * b) 也不總是等於 (b * a)。



    除此之外,Powershell中的加法"+"對數組和哈希表也可以操作,會在數組節做詳細討論。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章