3.1 在变量中存储信息
假如说变量存储了大量数据,且不用了,可以赋值为$null,则可以释放变量占用的内存空间。
3.2 访问环境变量
获得所有环境变量
Get-ChildItem env:
获得某一环境变量
$env:variableName
或Get-ChildItem env:variableName
或Get-ChildItem Environment::variableName
3.3 控制访问和变量的范围与其他项
在指定的范围内创建变量,在变量的名称前面提供SCOPE关键字
$SCOPE: varible=value
访问指定范围内的变量,在变量的前面提供范围
$SCOPE:varible
为了创建变量,在脚本退出后仍然有效,在变量前提供GLOBAL关键字
$GLOBAL:varible=value
为了从一个函数内修改脚本块的变量范围,在变量前提供SCRIPT关键字
$SCRIPT:varible=value
当代码进入到一个嵌套的提示、脚本、函数或脚本块的时候,PowerShell创建一个新的范围,这个范围变成本地的范围,
从而新旧范围被称为子范围和父范围,子范围可以访问父范围内的所有变量,但是子范围内对那些变量的修改不会影响到父范围内的变量版本。
Global: 全局范围,在此范围内的变量对其他范围是可见的
Script: 代表当前脚本范围,此范围内的变量对于其他脚本内的范围都是可见的
Local: 当前范围
特定范围内定义函数
function $GLOBAL:MyFunction{...}
GLOBAL:MyFunction args
3.4 使用.net对象
调用一个类的静态的方法
[className]::MethodName(parameter list)
调用对象的一个方法
$objectReference.MethodName(parameter list)
访问类的静态的属性
[className]::PropertyName
访问对象的属性
$objectReference.PropertyName
3.7 快速输入较长的类名
为了减少输入静态方法的名称,可以把类名保存到一个变量中
$math=[System.Math]
$math::Min(1,10)
$math::Max(1,10)
为了减少在同一命名空间的对象名的输入,可以使用-f操作符
$namespace="System.Collection.{0}"
$arrayList=New-Object ($namespace -f "ArrayList")
$queue=New-Object ($namespace -f "Queue")
3.9 了解类型和对象
获得保存到变量$object中的一个对象的实例成员,先把$Object变量用管道输出到Get-Member cmdlet,如下
$object | Get-Member
Get-Member -InputObject $object
获得保存到变量$object中的一个对象的静态成员
$object | Get-Member -Static
Get-Member -Static -InputObject $object
获得保存到变量$object一个对象的指定类型的成员,需要把成员的类型传递给-MemberType参数
$object | Get-Member -MemberType memberType
Get-Member -MemberType memberType -InputObject $object