通过重定向创建脚本
如果想要执行的脚本不是很长,我们甚至可以直接在控制台中要执行的语句重定向给一个脚本文件。
这样有个缺点,就是您的代码必须放在闭合的引号中。这样的书写方式一旦在脚本内部也有引号时,是一件很痛苦的事。甚至您还可能希望在脚本中换行。下面的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类),其基本数据类型包括
整型
其实 int
、long
、以及下面的 float
都是 .NET的语法糖,真正的原生类型名是Int32、int64
、single
之类的类名
浮点型
浮点数标准形式(float
和double
)
其中m为尾数,e为阶码,尾数是一个非负数,阶码是一个整数
PowerShell(. NET库)还支持一个特别的浮点数类型 decimal
,其形式为
浮点数的表示范围
其他类型
除了数值类型以外,还有4种基本类型和一些特殊的类型(引用类型)
4种值类型和1种引用类型