PowerShell 变量

help about_Variables

有这样几种变量

User-created variables

变量不需要声明,赋值之后就可以使用。

变量名字以 $ 开始。变量名字不区分大小写。

变量默认值是 $null。

$message = "hello world"
$MESSAGE
# hello world

指定变量类型,cast notation,在赋值时自动转换类型,如果转换失败将报错。

[string]$s = "a"
$s = 2
$s + 10
# 210

变量名字包含字母,数字和 _。如果包含其它的字符,应将名字放在 {} 内。

$env:ProgramFiles
${env:ProgramFiles(x86)}

Automatic Variables

help about_Automatic_Variables

PowerShell 自动创建的变量,不能修改它们的值。

Preference Variables

help about_Preference_Variables

preference variables 保存着 PowerShell 的配置,可以修改它们的值。

Environment Variables

help about_Environment_Variables

跟其它变量不一样,环境变量会被 child sessions(比如 jobs)继承。

通过 Environment Provider 获取环境变量。

${env:ProgramFiles(x86)}

Cmdlets

与变量相关的 cmdlets

Get-Command *-Variable

查看当前 session 中的变量

get-variable

readonly variable

> New-Variable -Name max -Value 256 -Option ReadOnly
> $max = 128
# Cannot overwrite variable max because it is read-only or constant.

> New-Variable -Name max -Value 1024 -Force
> $max
# 1024

private variable

New-Variable -Name counter -Visibility private
Get-Variable c*

重置变量的值

$message = $null
Clear-Variable -name message

删除变量

remove-variable -name message
remove-item -path variable:\message

Variable provider

Variable provider 创建 Variable: drive

例如 $PSCulture 可以这样访问

get-item variable:\PSCulture