变量

  在使用Windows PowerShell时,默认规则是:在使用某个变量之前,没有必要提前声明该变量,在需要使用变量保存数据的时候再声明就可以。

  变量名称前面都必须包括一个$(美元符号),例如示例1:

$cname="loca lhost"


Windows PowerShell中有些特殊的变量,这些变量时自动创建的,每一个有特殊的含义,见下表:

名称用途
$^包含外壳中上一行输入的第一个令牌;
$$包含外壳中上一行输入的最后一个令牌;
$_当前管道,可用于代码块、筛选器、where-object、foreach以及switch
$?包含上一个语句运行的成功/失败状态;
$args用于创建需要参数的函数;
$error如果发生错误,error对象就会被保存在该变量中;
$executioncontextcmdlet可用的execution对象;
$foreach代表用于foreach遍历的枚举器;
$home用户的主目录,被设置为“%HOMEDRIVE%\%HOMEPATH%”
$input将输入内容用管道传递给函数或者代码块;
$match包括有-match运算符找到的内容组成的哈希表;
$myinvocation有关当前执行的脚本或命令行的信息;
$pshomeWindows Shell的安装目录;
$host有关当前执行宿主的信息;
$false布尔逻辑值false
$lastexitcode上一个要运行的原生程序的退出代码;
$true布尔逻辑值True
$nullNULL对象;
$this在type.psl xml文件或某些代码块实例中代表当前对象;
$ofs转换数组为字符串的输出字段分隔符;
$shellid外壳的标示符,此值可被外壳用于在启动时判断执行策略及配置文件;
$stacktrace包含上一个错误的详细堆栈追踪信息;


常量

Windows PowerShell中的常量类似于变量,但是有两点区别:常量的值永远不会变化,无法被删除。常量可以使用Set-Variable cmdlet创建,指派-option参数即可创建常量。

注意:在脚本代码中,常量和变量一样需要将其放在美元符号后面,但是在创建常量的时候则不需要包含美元符号。


示例1:

Set-Variable-nameintDriveType-value3-optionconstant