首页 > 代码库 > (7)Powershell算术运算符

(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中的加法"+"对数组和哈希表也可以操作,会在数组节做详细讨论。

本文出自 “花开花落” 博客,谢绝转载!

(7)Powershell算术运算符