上一节介绍了Powershell赋值运算符中的 = ,+= , -= ,详细内容参考这里。
本节介绍Powershell赋值运算符中的 *= , /= , %= , ++ , -- 。
1.乘法赋值运算符 (*=)
乘法赋值运算符 (*=) 对数字值执行乘法或追加指定数目的变量字符串值副本。如果变量是单个数字值,则将该值与运算符右侧的值相乘,并将结果赋值给变量。例如:
PS C:\> $a=2 PS C:\> $a*=5 PS C:\> $a 10
在上面的语句中,*= 运算符组合了两个运算。首先执行乘法,然后赋值。因此,以下语句是等效的:
PS C:\> $a*=3 PS C:\> $a=($a * 3)
如果变量包含字符串值,则 PowerShell 将指定数目的字符串追加到该值,相当于将字符串复制指定的倍数,然后赋值,例如:
PS C:\> $a="Powershell" PS C:\> $a *= 3 PS C:\> $a PowershellPowershellPowershell
需要注意的是不可以对两个字符串进行相乘操作,即以下语句是无效的。
PS C:\> $a="Powershell" PS C:\> $a *= "Powershell" 无法将值“Powershell”转换为类型“System.Int32”。错误:“输入字符串的格式不正确。” 所在位置 行:1 字符: 6 + $a *= <<<< "Powershell" + CategoryInfo : NotSpecified: (:) [], RuntimeException + FullyQualifiedErrorId : RuntimeException
要对数组的元素执行乘法,需要使用索引标识要执行乘法的元素。例如,下面的命令使数组中第一个元素( 索引位置 0 )乘以 4。
PS C:\> $a=1,2,3 PS C:\> $a[0] *= 4 PS C:\> $a 4 2 3
2. 除法赋值运算符 (/=)
除法赋值运算符 (/=) 使数字值除以在运算符右侧指定的值。除法运算符不能用于处理字符串变量。/= 运算符组合了两个运算。首先执行除法,然后赋值。因此,以下两个语句是等效的:
PS C:\> $a /= 2 PS C:\> $a = ($a / 2)
例如下面的命令使用 /= 运算符对变量的值执行除法:
PS C:\> $a = 8 PS C:\> $a /= 4 PS C:\> $a 2
与乘法赋值运算符类似,如果需要需要对数组元素执行,需要指定元素的下标(索引)。
3. 模赋值运算符 (%=)
模赋值运算符 (%=) 使变量的值除以运算符右侧的值,将余数赋值给变量,即取余操作,与除法赋值运算符类似,两个操作时数字时,才能使用此运算符。如果变量包含字符串变量或数组,则不能使用此运算符。%= 运算符组合了两个运算。首先,执行除法运算并确定余数,然后将余数赋予变量。因此,以下语句是等效的:
PS C:\> $a %= 4 PS C:\> $a = ($a % 4)
下面的语句使用 %= 运算符保存商的模(余数):
PS C:\> $a = 9 PS C:\> $a %= 4 PS C:\> $a 1
4. 递增运算符(++)和递减运算符(--)
递增运算符 (++) 使变量的值增加 1。在简单语句中使用递增运算符时,默认不返回任何值。要查看变量结果,请输入变量名称。例如:
PS C:\> $a=5 PS C:\> ++$a PS C:\> $a 6
如果要强制返回值,需要将变量和运算符括在圆括号内。例如:
PS C:\> $a=5 PS C:\> (++$a) 6
递增运算符有前缀(递增运算符放在变量之前)和后缀(递增运算符放在变量之后)。如果前缀形式,则在变量的值用于语句之前使变量递增(先自增,后运算)。例如:
PS C:\> $a=4 PS C:\> $b = ++$a PS C:\> $b 5 PS C:\> $a 5
如果是后缀形式,则在变量的值用于语句之后使变量递增(先运算,后自增)。例如对比下面的语句和上面语句执行的不同,$b的值并没有在$a++后立刻改变:
PS C:\> $a=4 PS C:\> $b = $a++ PS C:\> $a 5 PS C:\> $b 4
递减运算符和递增运算符完全类似,请自行类推。 需要注意的是,递增和递减运算符一般用在循环结构中,重复判断某一变量是否满足一定条件以此来进行下一步运算,会在Powershell的循环部分讲到,现在你可以理解为Java或是C#中的for循环的递增变量i。
本文出自 “花开花落” 博客,谢绝转载!
原文:http://020618.blog.51cto.com/6098149/1889090