(10)Powershell赋值运算符(一)
上一节介绍了Powershell中的内置变量,细节使劲戳jia er kuai er。
本节介绍Powershell中的赋值运算符,赋值运算符可向一个变量赋予一个或多个值。赋值运算符可以在赋值之前对值执行数值运算。
Powershell支持以下赋值运算符。
运算符 | 说明 | 备注 |
---|---|---|
= | 将变量的值设置为指定值。 | |
+= | 使变量的值增加指定值,或将指定值追加到现有值。 | |
-= | 使变量的值减少指定值。 | |
*= | 将变量的值与指定值相乘,或将指定值追加到现有值。 | 第二个操作数必须是数字,详细内容参考Powershell赋值运算符(二) |
/= | 将变量的值除以指定值。 | 两个操作数都必须是数字,详细内容参考Powershell赋值运算符(二) |
%= | 将变量的值除以指定值,然后将余数(模)赋予变量。 | 两个操作数都必须是数字,详细内容参考Powershell赋值运算符(二) |
++ | 使变量、可赋值属性或数组元素的值增加 1。 | 一元运算符,有前缀和后缀的形式,并且可赋值表达式必须是数字或是可以转换为数字。 |
-- | 使变量、可赋值属性或数组元素的值减少 1。 | 一元运算符,有前缀和后缀的形式,并且可赋值表达式必须是数字或是可以转换为数字。 |
1. 赋值运算符的语法
赋值运算符的语法如下:
<可赋值表达式><赋值运算符(上表格列出的内容)><值>,
可赋值表达式包括变量和属性,值可以是单个值,值数组,也可以是命令,表达式或是语句,例如:
PS C:\WINDOWS\system32> $a=1
PS C:\WINDOWS\system32> $pro=Get-Process
PS C:\WINDOWS\system32> $a="apple","orange","lemon","grape"
2. 赋值运算符(=)
变量是存储值的内存空间,使用赋值运算符可以将值存储在变量中,新值可以替换变量的现有值,也可以将值追加到现有值。例如以下语句将字符串"Powershell"赋值给变量$myStr
PS C:\WINDOWS\system32> $myStr="Powershell"
PowerShell 中向变量赋值时,如果该变量不存在,则会创建该变量。例如,下面两条赋值语句中的第一条创建 $a 变量并将值 1 赋予 $a。第二条赋值语句将值 3 赋予 $a。第一条语句创建一个新变量。第二条语句只更改该变量的值:
PS C:\WINDOWS\system32> $a=1
PS C:\WINDOWS\system32> $a=3
PowerShell 中的变量没有特定数据类型,除非进行转换。如果变量仅包含一个对象,则变量采用该对象的数据类型。如果变量包含对象集合,则变量为 System.Object 数据类型。因此,可以向该集合赋予任何类型的对象。例如下面的语句可以向变量添加进程对象、服务对象、字符串和整数,而不会生成错误:
PS C:\WINDOWS\system32> $a = "Liming"
PS C:\WINDOWS\system32> $a+= "Lily"
PS C:\WINDOWS\system32> $a+= "my string"
PS C:\WINDOWS\system32> $a+=13
PS C:\WINDOWS\system32> $a
LimingLilymy string13
赋值运算符 (=) 的优先级低于管道运算符 (|),所以在将命令管道的结果赋予变量时不需要圆括号。例如,下面的命令对计算机上的进程进行排序,然后将排序后的进程赋予 $a 变量:
PS C:\WINDOWS\system32> $a=Get-Process | Sort-Object -Property name
PS C:\WINDOWS\system32> $a
Handles NPM(K) PM(K) WS(K) CPU(s) Id SI ProcessName
------- ------ ----- ----- ------ -- -- -----------
144 10 4204 9916 10532 0 AggregatorHost
157 21 12040 14988 0.16 19768 1 ai
248 15 4608 14740 2808 0 AppHelperCap
589 41 37788 47732 3.73 16308 1 ApplicationFrameHost
464 19 21740 26116 1,150.47 50828 0 audiodg
437 39 27876 39468 5452 0 BitlockerEnablementToolService
5450 54 62880 73592 13608 0 CcmExec
1026 50 110476 68996 7.20 46256 1 chrome
1027 46 77644 92988 6.80 44700 1 chrome
522 38 28936 32652 1.56 40404 1 chrome
570 43 47692 68836 8.38 39216 1 chrome
1844 79 99680 165268 28.31 34772 1 chrome
689 44 31184 46724 5.73 13404 1 chrome
497 38 25172 27908 1.56 20756 1 chrome
597 42 32804 47592 1.58 18240 1 chrome
496 32 14496 18120 1.34 48564 1 chrome
609 42 33128 52152 1.73 11460 1 chrome
471 36 24148 24072 1.34 10352 1 chrome
586 41 33424 59292 1.88 23488 1 chrome
735 44 57036 84104 3.98 50804 1 chrome
156 16 2452 9400 0.06 15160 1 ChsIME
355 30 10452 12372 0.36 2236 1 cmd
355 30 10428 12524 0.39 45576 1 cmd
235 16 24016 12220 6168 0 CmRcService
198 19 7068 12896 0.30 47220 1 conhost
153 11 6068 14244 37928 0 conhost
163 11 6072 9908 20748 0 conhost
145 17 6584 9800 0.06 19324 1 conhost
89 8 5524 5920 13572 0 conhost
89 8 5524 5932 12764 0 conhost
152 11 6072 9108 12756 0 conhost
89 8 5572 5776 12272 0 conhost
89 8 5576 5732 10940 0 conhost
153 11 6052 8696 7568 0 conhost
89 8 5524 5640 6604 0 conhost
89 8 5520 5924 3004 0 conhost
145 17 6580 9448 0.67 2568 1 conhost
982 40 3788 7964 976 1 csrss
1126 39 2348 6532 1008 0 csrss
1038 51 145192 64844 782.36 12520 1 ctfmon
91 6 1176 5172 15704 0 dasHost
210 21 4952 21428 0.27 45184 1 DataExchangeHost
940 31 83144 82660 1736 0 DefendpointService
518 93 50352 50052 10776 0 DgAdmin
1606 80 93688 65460 5560 0 DgAgent
381 18 14556 4984 19.56 6808 1 DgPrompt
238 14 5168 956 5472 0 DgService
2228 870 152840 119368 11968 0 DgWip
437 32 10844 14500 3.78 31876 1 dllhost
589 41 15572 14332 4.75 31612 1 dllhost
440 32 10660 18604 3.58 30456 1 dllhost
559 31 13148 19600 28980 0 dllhost
458 33 11328 16928 10.02 19700 1 dllhost
528 25 7736 15860 3.98 16392 1 dllhost
210 18 3908 12124 11332 0 dllhost
2890 164 996000 151948 1708 1 dwm
433 24 10352 13100 6268 0 esif_uf
3677 146 501084 452312 2,024.47 22340 1 EXCEL
8248 252 814368 252008 3,702.22 14944 1 explorer
还可以将语句创建的值赋予变量,如下面的语句所示
PS C:\WINDOWS\system32> $a=if($b -lt 0) { 0 } else { $b }
-lt 是 less then 的缩写,相当于高级语言中的<=,会在Powershell的比较运算符中讲到。上面语句的意思是如果$b 的值小于 0 时将 0 赋予 $a 变量。如果 $b 的值不小于零,则将 $b 的值赋予 $a。
如果要将哈希表赋予变量,请使用 PowerShell 中的标准哈希表表示法。一个 at 符号 (@),在其后键入使用分号 (
标签:10,变量,PS,WINDOWS,system32,运算符,Powershell,赋值 From: https://www.cnblogs.com/zhang-snail/p/17974857