Powershell算术运算符
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中的加法"+"对数组和哈希表也可以操作,会在数组节做详细讨论。
本文出自 “花开花落” 博客,谢绝转载!
以上是关于Powershell算术运算符的主要内容,如果未能解决你的问题,请参考以下文章