powershell的变量与数据

通过重定向创建脚本

如果想要执行的脚本不是很长,我们甚至可以直接在控制台中要执行的语句重定向给一个脚本文件。

这样有个缺点,就是您的代码必须放在闭合的引号中。这样的书写方式一旦在脚本内部也有引号时,是一件很痛苦的事。甚至您还可能希望在脚本中换行。下面的Here-strings例子不错,也就是将脚本文件通过@' '@闭合起来。

PS E:> @'
>> Get-Date
>> $Env:CommonProgramFiles
>> #Script End
>> "files count"
>> (ls).Count
>> #Script Really End
>>
>> '@ > myscript.ps1

变量

变量可以临时保存数据,因此可以把数据保存在变量中,以便进一步操作。PowerShell 的变量定义非常方便。 我们可以用 $变量名=初值 的方法定义变量,解释器会根据所赋的初值判断变量类型。PowerShell 不需要显式地去声明,可以自动创建变量,只须记住变量的前缀为$(这一点又像bash了)。创建好了变量后,可以通过变量名输出变量,也可以把变量名加入双引号字符串中从而把变量值加到字符串内(所谓的模板字符串),但是有个例外: 单引号中的字符串不会识别和处理变量名。

选择变量名

在 PowerShell 中变量名均是以美元符 $ 开始,剩余字符可以是数字、字母、下划线的任意字符,并且PowerShell变量名也对大小写不敏感($a 和 $A 是同一个变量)。 某些特殊的字符(比如$等)在 PowerShell 中有特殊的用途,一般不推荐使用这些字符作为变量名。当然你非要使用,请把整个变量名后缀用花括号括起来。

不能定义和保留变量名称相同的变量

使用ls variable: 列出当前使用的所有变量,刚启动的 PowerShell 执行此命令能看到 PowerShell 的所有自动化变量(一旦打开 Powershell 就会自动加载的变量)

查看变量类型

变量可以自动存储任何PowerShell能够识别的类型信息,可以通过 $变量名.GetType() 查看和验证 PowerShell 分配给变量的数据类型

P> $age = 99
P> $age.GetType()

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Int32                                    System.ValueType

删除变量

如果不想继续使用自定义的变量,可以使用del variable:变量名的方法删除变量,注意此处无$符号

PowerShell支持的变量类型和C#大体相同(没有了short、uint、ulong等),大多都继承自System.ValueType类( .NET类),其基本数据类型包括

整型

powershell的变量与数据

其实 int 、long 、以及下面的 float 都是 .NET的语法糖,真正的原生类型名是Int32、int64single 之类的类名

浮点型

浮点数标准形式(floatdouble)

 其中m为尾数,e为阶码,尾数是一个非负数,阶码是一个整数

PowerShell(. NET库)还支持一个特别的浮点数类型 decimal,其形式为

powershell的变量与数据

浮点数的表示范围

其他类型

除了数值类型以外,还有4种基本类型和一些特殊的类型(引用类型)

powershell的变量与数据

4种值类型和1种引用类型

上一篇:使用脚本 powershell 查看 windows 最近开关机时间


下一篇:powershell提取前10个process的内存和cpu占比